多重循环~最大公约数最小公倍数
题目描述:
输入
两个整数
输出
最大公约数,最小公倍数
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 }