ここでは任意の2つの数字の最大公約数と最小公倍数を求めるプログラムを解説していきます。
ソースコード
import java.io.*;
public class Gcd {
public static void main(String[] args)throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("2つの自然数を入力してください");
int a=Integer.parseInt(br.readLine());
int b=Integer.parseInt(br.readLine());
int gcd=getGCD(a,b);
int lcm=getLCM(a,b,gcd);
System.out.println("最大公約数は"+gcd+"です");
System.out.println("最小公倍数は"+lcm+"です");
}
private static int getGCD(int a,int b) {
for (int i=a;a>0;i--) {
if (a%i==0&&b%i==0) {
return i;
}
}return 1;
}
private static int getLCM(int a,int b,int gcd) {
return a*b/gcd;
}
}
スポンサーリンク
実行結果
2つの自然数を入力してください
35
81
最大公約数は1です
最小公倍数は2835です
2つの自然数を入力してください
630
300
最大公約数は30です
最小公倍数は6300です
簡単な内容説明
このプログラムはgetGCD()で最大公約数、getLCM()で最小公倍数を求めています。
最大公約数を求めるにはfor文で変数 i を入力された数値のどちらかと同じ値に設定し、
1ずつ引いていきながら2つの自然数の両方が割り切れたらreturn文でその i を返します。
最小公倍数は2つの自然数の積を最大公約数で割ると求めることができます。
スポンサーリンク