Live in the Moment
2021-06-09 20:50
采纳率: 100%
浏览 47

写两个函数,分别求两个整数的最大公约数和最小公倍数

1.JAVA语言。

2.描述它的解题思路。

3.写出代码并注释。

 

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • 已采纳
    	    Scanner scan=new Scanner(System.in);
    
    		int m=scan.nextInt();
    		int n=scan.nextInt();
    		int fan = 0,x=m,y=n;
    	    if(m<n) {              //始终保持m比n大,
    	    	fan=m;m=n;n=fan;   
    	    }
    		while(m%n!=0) {        //运用辗转相除法求出最大公约数
    			fan=m%n;
    			m=n;
    		    n=fan;
    		}
    		System.out.println(n);
    		System.out.print(x*y/n);//x*y除以最大公约数得到最小公倍数
    

    思路:

    1.辗转相除法:

    两整数m和n:
    (1)比较两数大小,若m小于n,交换
    (2) m%n得到余数fan
    (3)若fan为0时,则n是两个数的最大公约数
    (4)若fan不为0时,则m=n,n=fan,再执行(1),继续循环

    点赞 1 评论
  • CSDN专家-Time 2021-06-09 20:52
    import java.util.Scanner;
     
    public class Test {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int m = sc.nextInt();
            int n = sc.nextInt();
             
            if(m<n) {
                int temp = m;
                m = n;
                n = temp;
            }
     
            int t = gy(m,n);
            System.out.println("它们最大公约数为:" + t);
            System.out.println("它们最小公倍数为:" + m * n / t);
        }
    //      求最大公约数
        private static int gy(int m, int n) {
            if(m%n == 0) return n;
            return gy(n,m%n);
        }
    }
      
    点赞 评论
  • Live in the Moment 2021-06-09 21:58

    import java.util.Scanner;

    public class Main{

     

    public static void main(String[] args) {

    Scanner in = new Scanner(System.in);

    int a = in.nextInt();

    int b = in.nextInt();

    int A=a,B=b;

            while(B!=0)

            {

            int i=A%B;

            A=B;

            B=i;

            }

            System.out.print(A);

            System.out.print(" ");

            

            int j=a>b?a:b;

            while(j>0)

            {

            if(j%a==0 && j%b==0)

            {

            System.out.print(j);

            break;

            }

            j++;

            }

            in.close();

    }

    }

    点赞 评论
  • 有问必答小助手 2021-06-10 11:09

    您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

    如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

    ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

    点赞 评论

相关推荐 更多相似问题