1.输入两个正整数m和n,求最大公约数和最小公倍数。
设计思路:
求最小公倍数算法:
最小公倍数=两整数的乘积÷最大公约数
求最大公约数算法:
(1)辗转相除法
有两整数a和b:
①a%b得余数c
②若c=0,则b即为两数的最大公约数
③ 若c≠0,则a=b,b=c,再回去执行①
例如求27和15的最大公约数过程为:
27÷15余12
15÷12余312÷3余0因此,3即为最大公约数
代码:
#include <stdio.h>
int main()
{
int n,m,r,temp,p;
printf("请输入两个正整数n,m:");
scanf("%d,%d",&n,&m);
if(n<m)
{
temp=n;
n=m;
m=temp;
}
p=n*m;
while(m!=0) //利用辗除法求最大公约数,有了最大公约数,才能求最小公倍数。
{
r=n%m;
n=m;
m=r;
}
printf("它们的最大公约数为:%d\n",n);
printf("它们的最小公倍数为:%d\n",p/n);
return 0;
}
结果展示: