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メソッドコンソール出力しています。

以上です。

関連コンテンツ

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

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

Javaのプログラムを作ってみませんか?プログラミングに必要なものの用意から実行までを説明しています。

2020.03.23

Swingパッケージを使ってグラフィック表示を行う方法を解説しています。

2020.03.23

繰り返し処理を使ったJavaのソースコードサンプルを紹介しています。

2020.03.23

配列を使うJavaソースコードを多数紹介しています。

2021.05.18

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

2022.10.25

三角形、台形、円などいろいろな図形の面積を計算するプログラムを紹介しています。詳しくは、記事をご覧ください。

2021.05.18

StringクラスとStringBuilderクラスを利用したプログラミングの仕方を紹介しています。

2016.12.16

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

2020.03.23

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

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

2022.08.03

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

2020.03.23

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

2022.08.29

「ゆるゆるプログラム」のコンテンツを紹介しています。興味のある方はこの記事をご覧ください。

2020.03.23

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

2020.03.23

広告