#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--) 减少了运行次数和时间,会不会更好点 谢谢大佬的思路
printf基础练习2 (有点不明白)浏览:834 |
wu-淘淘的名单 (C++代码)浏览:1325 |
C语言程序设计教程(第三版)课后习题10.4 (C语言代码)浏览:879 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:780 |
简单的a+b (C语言代码)浏览:531 |
敲七 (C++代码)浏览:1048 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:553 |
C语言程序设计教程(第三版)课后习题8.7 (C语言代码)浏览:795 |
小O的数字 (C语言代码)浏览:1404 |
C语言程序设计教程(第三版)课后习题11.3 (C语言代码)浏览:2157 |
凯风快晴 2018-05-14 16:41:18 |
ab不是正整数何谈公约公倍数
Christ 2018-07-24 08:29:37 |
@mokou 负整数有
Christ 2018-07-24 08:31:22 |
有这个想法还是不错。但请你注意读题,按照题目要求,输入的一定是正整数。