ゆるゆるプログラミング

・公約数

与えられた2つの自然数(正の整数)を割り切ることができる整数公約数です。

ここでいくつかの最大公約数の例を挙げます。

・6と12の公約数は、以下の4つです。

  1

  2

  3

  6

・42と14の公約数は、以下の4つです。

  1

  2

  7

 14

ここでは、2つの自然数公約数を求めるプログラムを紹介します。

公約数を求める方法は、2つの自然数を1から順番に割っていき、2つの数を割りきった数を公約数とします。割る数が2つの自然数の小さい数と同じになれば終了です。

2つの値が6と12の場合、1から順番に割っていき、6と12の小さい方の6まで割っていきます。1~6で6と12を割り、割り切れた数を公約数とします。

それでは、公約数を求めるJavaソースコードをみてみましょう。

CD_1.java ← クリックしてダウンロードページに移動
001:    public class CD_1 {
002:    	public static void main( String[] args ) {
003:    		// 変数を宣言
004:    		int a, b, min;
005:    
006:    		// 変数に値を代入
007:    		a = 6;
008:    		b = 12;
009:    
010:    		// 2つの数字の小さい数をminに代入
011:    		min = Math.min( a, b );
012:    
013:    		// 公約数を求めるループ
014:    		for ( int i = 1; i <= min; ++ i ) {
015:    			if ( 0 == ( a % i ) ) {
016:    				if ( 0 == ( b % i ) ) {
017:    					// aとbを割り切ったiが公約数
018:    					System.out.println( i );
019:    				}
020:    			}
021:    		}
022:    	}
023:    }

CD_1を実行

C:\talavax\javasample>java CD_1

実行結果

1
2
3
6

4つの公約数が正しく表示されました。

ここからは、このソースコードを上から順番に解説していきます。

001:    public class CD_1 {

クラス名を、CD_1としています。

002:    	public static void main( String[] args ) {

このmainメソッドからプログラムを実行します。

003:    		// 変数を宣言
004:    		int a, b, min;

変数を宣言しています。

006:    		// 変数に値を代入
007:    		a = 6;
008:    		b = 12;

int型変数aとbに自然数を代入します。

010:    		// 2つの数字の小さい数をminに代入
011:    		min = Math.min( a, b );

変数aとbのうち小さいほうを変数minに代入しています。

013:    		// 公約数を求めるループ
014:    		for ( int i = 1; i <= min; ++ i ) {

公約数を求めるループです。for文変数iを1からminまで1つずつ増やしています。

015:    			if ( 0 == ( a % i ) ) {
016:    				if ( 0 == ( b % i ) ) {
017:    					// aとbを割り切ったiが公約数
018:    					System.out.println( i );

変数aとbを変数iで割った余りが0であれば、変数iを公約数としてprintlnメソッドでコンソール出力しています。

■関連コンテンツ

最大公約数 1番大きい約数は?
for文 繰り返し処理に使用するfor文について解説
剰余(余り)計算 剰余(余り)を計算した結果を表示するプログラムについて解説

■新着情報

2020.07.10 値の交換クラス クラスによる変数値を交換する方法を解説
2020.07.08 公約数 公約数
2020.07.08 最大公約数 1番大きい約数は?

■広告

フィギュア予約最大25%OFF+ポイント5%還元!ホビーサーチ

~約8,000名の受講生と80社以上の導入実績~ 企業向けプログラミング研修ならCodeCamp

日本最大級ショッピングサイト!お買い物なら楽天市場

 

 

 

 

 

 

 

Topへ