写两个函数,分别求两个整数的最大公约数和最小公倍数
1.JAVA语言。
2.描述它的解题思路。
3.写出代码并注释。
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),继续循环
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);
}
}
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();
}
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632