题目:求解三个整数的最大公因数和最小公倍数
1.最大公因数的求解
最大公因数的定义:设A与B是不为零的整数,若C是A与B的因数,则C叫A与B的公因数,若干个公因数中最大的就是最大公因数。
方法:1.根据定义求。A和B,假设B较小,用B-1,B-2.。。2等树依次去除A和B,能同时整除A与B的就是最大公因数
2.辗转相除法。
A/B: 商S1,余R1
B/R1:商S2,余R2
。。。
Rn/Rn+1:商Sn,余0//此时,Rn+1是A和B的最大公因数
2.最小公倍数
1.定义求解。找出最大数D,用D的1倍、2倍。。去除以各个数,能够整除所有的数时,就是这些数的最小公倍数
2.公式:A和B的最小公倍数=A*B/A和B的最大公因数
import java.io.*;
public class my {
public static void main(String args[])
{
int num1,num2,num3;
String s=" ";
System.out.println("Input the first Number: ");
try{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
s=in.readLine();
}
catch(IOException e){}
num1=Integer.parseInt(s);
System.out.println("Input the second Number: ");
try{
BufferedReader in= new BufferedReader(new InputStreamReader(System.in));
s=in.readLine();
}
catch(IOException e){}
num2=Integer.parseInt(s);
System.out.println("Input the third Number: ");
try{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
s=in.readLine();
}
catch(IOException e ){}
num3=Integer.parseInt(s);
//计算最大公因数
int result1=0;
int a=num1;
int b=num2;
int c=num3;
int tmp=0;
int remain=a%b;
while(remain!=0)
{
a=b;
b=remain;
remain=a%b;
}
tmp=b;
a=tmp;
remain=a%c;
while(remain!=0){
a=c;
c=remain;
remain=a%c;
}
result1=c;
System.out.println("最大公因数: "+result1);
//计算最小公倍数
int tmp1=num1*num2/tmp;
a=tmp1;
c=num3;
remain=a%c;
int result2=0;
while(remain!=0){
a=c;
c=remain;
remain=a%c;
}
result2=tmp1*num3/c;
System.out.println("最小公倍数: "+result2);
}
}