#include<stdio.h> int main() { int a,b,i,j;//i最大公约数,j最小公倍数 scanf("%d %d",&a,&b); for (i=(a>b?a:b);i>0;i--){ if (a%i==0&&b%i==0){ j=a*b/i; printf("%d %d\n",i,j); break; } } return 0; }
最大公倍数值不会大于a,b最大值;
两个数都能整除它;
最小公倍数等于a*b除以最大公约。
有结果就需要返回,使用break;
0.0分
16 人评分
#include<stdio.h> int main() { int m,n,i,s; scanf("%d,%d",&m,&n); for(i=(m>n?m:n);i>0;i--) { if(m%i==0&&n%i==0) { s=m*n/i; printf("%d %d\n",i,s); break; } } return 0; } 求大神解惑
#include<stdio.h> #include<math.h> int main() { int a,b,c,m,n; scanf("%d%d", &a, &b); if(a<b) { c=a; a=b; b=c; } for(n=a%b) { if(a%n==0&&b%n==0) m=a*b/n; } break; printf("%d %d\n",n,m); return 0; } 哪位大神可以帮我看一下错哪吗 谢谢
Clearlove7 2018-11-25 22:09:23 |
scanf中%d 和%d之间要么有空格要么加逗号,不然如何知道你输入的是2和3还是23呢?for循环错了,按照楼主的改吧