程序要求:读入用户输入的两个整数K1和K2(K2>K1),然后输出K1和K2的最大公约数。
参考程序:
import java.util.Scanner;
public class p02 {
public static void main(String arg[])
{
int k1,k2;
k1=0;
k2=0;
while(k1>=k2)
{
Scanner scan=new Scanner(System.in);
System.out.println("please input k1");
k1=scan.nextInt();
System.out.println("please input k2");
k2=scan.nextInt();
if(k1>=k2)
System.out.println("input error");
}
System.out.println("ok");
System.out.println();
for(i=2;i<=k1;i++)
{
if(k1%i==0&&k2%i==0)
a=i;
}
System.out.println("k1和k2的最大公约数是: "+a);
}
}
思路:首先,我们要判断输入的两个数是否复合要求,即K2>K1,,然后根据辗转相除法的思路求出公约数就行。
运行结果: