c语言中输入两个整数求其最大公约数和最小公倍数
时间: 2024-06-13 09:06:02 浏览: 130
以下是C语言中输入两个整数求其最大公约数和最小公倍数的代码和解释:
```c
#include <stdio.h>
int main() {
int m, n, t, i, k;
printf("请输入两个正整数:\n");
while(1) {
scanf("%d %d",&m,&n);
if(m*n>0) {
break;
}
printf("输入有误请再次输入:\n");
}
if(m<n) {
t=m;
m=n;
n=t;
}
for(i=n;i>0;i--) {
if(m%i==0 && n%i==0) {
break;
}
}
for(k=m; ;k++) {
if(k%m==0 && k%n==0) {
break;
}
}
printf("最大公约数为%d\n",i);
printf("最小公倍数为:%d\n",k);
return 0;
}
```
解释:
1. 首先,通过`scanf`函数输入两个正整数m和n。
2. 判断m和n是否都为正整数,如果不是则要求重新输入。
3. 如果m小于n,则交换m和n的值。
4. 从n开始向下遍历,找到第一个既能整除m又能整除n的数,即为最大公约数。
5. 从m开始向上遍历,找到第一个既能被m整除又能被n整除的数,即为最小公倍数。
6. 输出最大公约数和最小公倍数。
阅读全文