#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 人评分
最大公倍数值不会大于a,b最大值; for (i=(a>b?a:b);i>0;i--) 改成 for (i=(a>b?b:a);i>0;i--) 减少了运行次数和时间,会不会更好点 谢谢大佬的思路
C语言程序设计教程(第三版)课后习题9.4 (C语言代码)浏览:717 |
计算质因子 (C++代码)浏览:1610 |
输出正反三角形 (C语言代码)浏览:780 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)from DQM浏览:652 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:1141 |
Tom数 (C语言代码)浏览:492 |
1051(奇了怪了)浏览:645 |
Tom数 (C语言代码)浏览:525 |
1052题解(链表操作)浏览:651 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:662 |
凯风快晴 2018-05-14 16:41:18 |
ab不是正整数何谈公约公倍数
Christ 2018-07-24 08:29:37 |
@mokou 负整数有
Christ 2018-07-24 08:31:22 |
有这个想法还是不错。但请你注意读题,按照题目要求,输入的一定是正整数。