C语言程序设计教程(第三版)课后习题6.1
语言学习从菜鸟开始
描述
输入两个正整数m和n,求其最大公约数和最小公倍数。
输入
两个整数
输出
最大公约数,最小公倍数
输入样例 1
5 7
输出样例 1
1 35
解题思路:1.最大公因数,我们要判断谁才是最小那个数,然后以该数字为循环变量的初始值,一直递减,直到能被a,b两个数整除的数,结束。
2.最小公倍数,我们要知道哪一个才是最大值,然后以最大值为循环变量的初始值,一直递增直到a,b都被整除的那个数为止。
(我经常犯的一个错误,就是最后打印,第一个打印要留一个空格,笔者经常忘记)
#include
int main()
{
int temp,a,b;
scanf("%d%d",&a,&b);
if(a>b)
{
temp = a;
a = b;
b = temp;
}
//求最大公因数
for(int i = a;i>=0;i--)
{
if(a%i==0&&b%i==0)
{
printf("%d ",i);
break;
}
}
//求最小公倍数
temp = a*b;
for(int i = b ;i<= temp;i++)
{
if(i%a==0&&i%b==0)
{
printf("%d",i);
return 0;
}
}
}
感谢每一位看到这里的大佬,如有错误请指出,感谢!