#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语言代码)浏览:716 |
简单的a+b (C语言代码)浏览:626 |
A+B for Input-Output Practice (IV) (C语言代码)浏览:516 |
校门外的树 (C语言代码)浏览:961 |
WU-输出九九乘法表 (C++代码)浏览:1671 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:672 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:862 |
C语言程序设计教程(第三版)课后习题8.7 (C语言代码)浏览:916 |
C语言程序设计教程(第三版)课后习题10.4 (C语言代码)浏览:884 |
出圈】指针malloc版浏览:355 |
凯风快晴 2018-05-14 16:41:18 |
ab不是正整数何谈公约公倍数
Christ 2018-07-24 08:29:37 |
@mokou 负整数有
Christ 2018-07-24 08:31:22 |
有这个想法还是不错。但请你注意读题,按照题目要求,输入的一定是正整数。