程序填空:输入两个正整数n和m,用辗转相除法求其最大公约数,再求最小公倍数。 #include<stdio.h> int main() { int p,r,n,m,temp; printf("请输入两个正整数n,m:"); scanf("%d,%d",&n,&m); if(【1】) { temp=n; n=m; m=temp; } p=【2】; while(【3】) { r=【4】; n=m; 【5】 } printf("它们的最大公约数为:%d\n",【6】); printf("它们的最小公倍数为:%d\n",【7】); return 0; }用C语言
时间: 2024-01-23 18:02:09 浏览: 66
输入两个正整数m和n,求其最大公约数和最小公倍
程序如下:
```
#include<stdio.h>
int main()
{
int p,r,n,m,temp;
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;
}
```
解释如下:
1. 判断n是否小于m,如果小于则交换n和m的值,保证n大于等于m。
```
if(n<m)
{
temp=n;
n=m;
m=temp;
}
```
2. 用p记录n和m的乘积。
```
p=n*m;
```
3. 用辗转相除法求n和m的最大公约数,直到m等于0。
```
while(m!=0)
{
r=n%m;
n=m;
m=r;
}
```
4. 最大公约数为n,最小公倍数为n和m的乘积除以n。
```
printf("它们的最大公约数为:%d\n",n);
printf("它们的最小公倍数为:%d\n",p/n);
```
阅读全文