输入两个正整数m和n,求其最大公约数和最小公倍数!

import java.util.Scanner;

/**
* 作者: 北大青猫
* 时间: 2022-03-22 08:46 星期二
* 备注: 输入两个正整数m和n,求其最大公约数和最小公倍数
*/
public class D1 {
public static void main(String[] args) {
Scanner s1= new Scanner(System.in);
while (true){
System.out.println("请输入第一个数:");
int a1=s1.nextInt();
System.out.println("请输入第二个数:");
int a2=s1.nextInt();
//初始值为零,存公约数
int max=0 ;
//公约数从2开始,公倍数的最大为两个数中最小的的那个,故(a1<a2?a1:a2)
//(a1<a2?a1:a2)为三元运算 ,判断两个数的最小值
for(int i=2;i<=(a1<a2?a1:a2);i++){
//如果两个数同时除尽,则为公约数
if (a1%i==0 && a2%i==0){
//由于公约数是从小到大,所以循环到最后一个的便是最大的公约数
max=i;
}
}
//初始值为零,存公倍数
int min=0 ;
//公倍数是从两个数的乘积开始,公倍数的最小为两个数中的最大的那个,所以(a1>a2?a1:a2) 判断两个数的最大值
for (int j=a1*a2;j>=(a1>a2?a1:a2);j--){
//如果两个数同时除尽,则为公倍数
if (j%a1==0 &&j%a2==0){
//由于公倍数是从大到小,所以循环到最后一个就是最小公倍数
min=j;
}
}
System.out.println("最大公约数是:"+max);
System.out.println("最小公倍数是:"+min);
System.out.println();
}
}
}
posted @   北大青猫  阅读(317)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
点击右上角即可分享
微信分享提示