2020/07/08 公開
・公約数
与えられた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;
010: // 2つの数字の小さい数をminに代入 011: min = Math.min( a, b );
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文について解説 |
剰余(余り)計算 | 剰余(余り)を計算した結果を表示するプログラムについて解説 |
■新着情報
2021.12.21 | 現在の日時を取得 | いまの年月日、時分秒? |
■広告
