A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© dengxuye 中级黑马   /  2016-3-26 22:38  /  484 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

5 个回复

倒序浏览
public static void main(String[] arg){
        Scanner sc = new Scanner(System.in);
        int a =sc.nextInt();
        int b =sc.nextInt();
        int t=0;
        int i;
        for(i=a;i>=2;i--)
        if((a%i==0)&&(b%i==0))
        {
                System.out.println("最大公约数为:"+i);
                t++;
                break;
        }
        if(t==0)
                {
                        System.out.println("没有最大公约数");
                        System.out.println("最小公倍数为:"+a*b);
                }
        else
                //由于两个数的乘积等于这两个数的最大公约数与最小公倍数的积。即(a,b)×[a,b]=a×b。所以,求两个数的最小公倍数,就可以先求出它们的最大公约数,然后用上述公式求出它们的最小公倍数。
                {
                        System.out.println("最小公倍数为:"+a*b/i);
                }
        }
回复 使用道具 举报
前阵子做的,没什么注释,希望你能看懂
回复 使用道具 举报
m%x=0,n%x=0,x就是m,n的公约数,for循环,(x=m或者x=n),x--到满足前面条件的时候break结束循环,就可以求出最大的公约数
y%m=0,y%n=0,y就是m,n的公倍数。for循环,(y=m或者y=n),y++到满足前面条件的时候break结束循环,就可以求出最小的公倍数
回复 使用道具 举报
受教了,都忘了公倍数和公约数咋算的了
回复 使用道具 举报
ckm666666 发表于 2016-3-26 22:44
public static void main(String[] arg){
        Scanner sc = new Scanner(System.in);
        int a =sc.nextInt();

很详细,谢谢大神
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马