package diliujiangzy;
import java.util.Scanner;
public class Zuidagongyushu {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner=new Scanner(System.in);
System.out.println("请输入第一个数");
int x=scanner.nextInt();
System.out.println("请输入第二个数");
int y=scanner.nextInt();
for(int i=Math.min(x,y);i>1;i--) {
if(x%i==0&&y%i==0) {
System.out.println(x+"和"+y+"的最大公约数是"+i);
break;
}else{
System.out.println(x+"和"+y+"的最大公约数是1");
}
}
}
}
结果如下
请输入第一个数
15
请输入第二个数
25
15和25的最大公约数是1
15和25的最大公约数是1
15和25的最大公约数是1
15和25的最大公约数是1
15和25的最大公约数是1
15和25的最大公约数是1
15和25的最大公约数是1
15和25的最大公约数是1
15和25的最大公约数是1
15和25的最大公约数是1
15和25的最大公约数是5
修改如下:
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入第一个数");
int x=scanner.nextInt();
System.out.println("请输入第二个数");
int y=scanner.nextInt();
int i;
for(i=Math.min(x,y);i>1;i--) {
if(x%i==0&&y%i==0) {
break;
}
}
System.out.println(x+"和"+y+"的最大公约数是"+i);
}
不知道你这个问题是否已经解决, 如果还没有解决的话:#include <stdio.h>
#include <math.h>
int main(){
int M,N,a,b;
int m,n,max,min,sum;
scanf("%d %d",&M,&N);
if(M<N){
a=N;
b=M;
}else{
a=M;
b=N;
}
if(M<=1000&&N<=1000){
for(int i=a; ;i--){
if(a%i==0&&b%i==0){
max=i;
break;
}
}
for(int k=1; ;k++){
if((a*k)%b==0){
min=k;
sum=a*k;
break;
}
}
}
printf("%d %d",max,sum);
return 0;
}