使用:三元运算符,for循环,if语句
代码
Scanner scan = new Scanner(System.in);
System.out.println("请输入第一个正整数:");
int m = scan.nextInt();
System.out.println("请输入第二个正整数:");
int n = scan.nextInt();
int min = (m <= n) ? m : n;
for(int i = min ; i >= 1; i--){
if(m % i == 0 && n % i == 0){
System.out.println("最大公约数为:"+i);
break;
}
}
int max = (m >= n) ? m : n;
for(int i = max ; i <= m*n; i++){
if(i % m == 0 && i % n == 0){
System.out.println("最小公倍数为:"+i);
break;
}
}
结果:
分析:
求最大公约数i,i一定在1~min(两数较小的一个)之间,因此,使用for循环在1~min之间由大到小进行遍历,第一个满足要求的就是最大公约数,然后使用break结束程序,否则会输出所有公约数
最小公倍数同理,只不过最小公倍数是在max(两数较大的一个)和m*n之间由小到大进行遍历。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)