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ソースコード

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

CD_1.java

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
public class CD_1 {
	public static void main( String[] args ) {
		// 変数を宣言
		int a, b, min;

		// 変数に値を代入
		a = 6;
		b = 12;

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

		// 公約数を求めるループ
		for ( int i = 1; i <= min; ++ i ) {
			if ( 0 == ( a % i ) ) {
				if ( 0 == ( b % i ) ) {
					// aとbを割り切ったiが公約数
					System.out.println( i );
				}
			}
		}
	}
}

コンパイル ソースコードが「ANSI」の場合

C:\talavax\javasample>javac -encoding sjis CD_1.java

コンパイル ソースコードが「UTF-8」の場合

C:\talavax\javasample>javac CD_1.java

実行

C:\talavax\javasample>java CD_1

出力結果

1
2
3
6

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

Javaソースコードの解説

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

001
public class CD_1 {

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

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

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

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

変数を宣言しています。

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

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

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

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

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

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

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

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

以上です。

関連コンテンツ

数学に関係するJavaのメソッドやソースコードなどを紹介しています。

2022.10.25

最大公約数について解説しています。興味がある方はご覧ください。

2020.07.08

処理を繰り返すために使用するfor文について解説しています。

2020.03.23

繰り返し処理の作り方を解説しています。

2016.03.02

割り算で割り切れずに残った端数を剰余(余り)といいます。この剰余の計算をJavaのソースコードを使って解説しています。

2020.03.23

Javaの学習に役立つソースコードを多数紹介しています。是非、ご覧ください。

2022.09.10

Javaを使った簡単な応用プログラム(生年月日から年齢を計算プログラムなど)を紹介しています。

2022.07.07

画像フォーマット形式・色・大きさ・傾きなどの変更、特定の図形(文字・記号など)を見つけたり、取り出したりする画像処理について詳しく解説。

2015.11.29

日本で使われてきた伝統文様「和柄」について解説しています。

2022.07.27

プログラミング、ITに関する用語をまとめています。

2022.10.17

条件式を判断して処理を分岐する方法を詳しく説明しています。

2023.03.20

変数やクラスに格納されている値をコンソール出力する方法は?

2020.03.23

プログラムの最初に実行されるメソッドは?

2022.12.13

プログラミングで使う変数って何?

2020.03.23

Javaのプログラムを書いてみませんか?プログラムの書き方をくわしく説明しています。

2020.03.23

「Javaソースコード」から実行可能な「オブジェクトコード」に変換する方法をくわしく説明しています。

2020.03.23

自然数と整数って何が違う?

2020.03.23

割り算で「割り切れる」、「割り切れない」ってどういうこと?

プログラミング言語とは?種類や特徴について説明しています。

2022.08.03

Javaプログラムの構成について解説しています。詳しくは、こちらをご覧ください。

2020.03.23

for文で変数名iがよく使われる理由について説明しています。興味のある方は是非。

2022.08.29

与えられた2つの自然数の最小約数の掛け算を繰り返して最大公約数を求めるJavaソースコードを紹介しています。

2020.03.23

広告