小智


私信TA

用户名:2944810854

访问量:628

签 名:

等  级
排  名 6466
经  验 1356
参赛次数 0
文章发表 4
年  龄 18
在职情况 学生
学  校 暨南大学
专  业 人工智能

  自我简介:

解题思路:


一、求最大公约数的方法:1.穷举法(容易想,但是比较慢) 2.辗转相除法   3.更相减损法。这里我们介绍第二种方法;

二、求最小公倍数的方法:1.穷举法  2.假设x和y的最大公约数为temp,那么最小公倍数为x*y/z。这里我们用第二种方法

三、辗转相除法的步骤,先看示例: 

x = 5 , y = 7;

max = 7 , min = 5;

7 % 5 = 2;

5 % 2 = 1;

2 % 1 = 0;

那么最大公约数就是1

看到这里大家应该有些眉目了,就是先拿x和y中的max%min , 假如结果为0,那么min就是最大公约数;

否则,temp = max%min,  max = min, min = temp;也就是让max=min,min等于刚刚整除的结果;

一直循环下去,直到结果为0,最后的min就是最大公约数;

四、求最小公倍数:

公式为: x*y/z , z是它们的最大公约数;

那么,最小公倍为:5*7/1 = 35;


注意事项:
注意退出循环的条件

参考代码:

import java.util.Scanner;

public class Main 

{

public static void main(String[] args)

{

     Scanner sc = new Scanner(System.in);

     int a = sc.nextInt();

     int b = sc.nextInt();

     int max = Math.max(a, b);

     int min = Math.min(a, b);

     while(true)

     {

         if(max % min==0)

         {

             System.out.print(min+" ");     

             System.out.println(a*b/min);

             break;

         }

         else

         {

             int temp = max%min;

             max = min;

             min = temp;

         }

     }

     sc.close();

}


}


 

0.0分

2 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区