多重循环~最大公约数最小公倍数

题目描述:

输入

两个整数

 

输出

最大公约数,最小公倍数
 
 1 #include<stdio.h>
 2 int main(){
 3     int m,n;
 4     int max,min;
 5     int r;          //用来存储余数
 6     scanf("%d%d",&m,&n);
 7     
 8     //判断两个数是否是倍数关系
 9     if(m>n){
10         max=m;
11         min=n;
12     }
13     if(m<n){
14         max=n;
15         min=m;
16     }
17     int c=min;
18     //最大公约数:辗转相除法
19     while(min){
20         r=max%min;
21         max=min;
22         min=r;
23     }
24     printf("%d",max);
25 
26     //最小公倍数:从2>两个数字中的较小数 开始做循环找到一个可以同时除尽m,n的数字
27     
28     int i;
29     for(i=c;i>0;i++){
30         if(i%m==0 && i%n==0){
31             printf(" %d",i);
32             break;
33         }
34     //  if(m%i==0 && n%i==0){
35     //      printf("%d\n",i);
36     //     }
37     //     break;
38     }
39 
40     // //是倍数关系:较大数为最大公因数,较小数位最小公倍数
41     // if(max%min==0){
42     //     printf("%d %d",min,max);
43     // }
44     // //不是倍数关系
45     // else{
46         
47     // }
48 
49     return 0;
50 }

 

posted on 2022-10-25 14:01  罗小罗佳油  阅读(25)  评论(0编辑  收藏  举报