用c语言写输入两个正整数m和n,求最大公约数和最小公倍数。
时间: 2023-05-29 11:03:13 浏览: 75
#include<stdio.h>
int main()
{
int m,n,i,gcd,lcm;
printf("请输入两个正整数m和n:\n");
scanf("%d%d",&m,&n);
for(i=1;i<=m && i<=n;i++)
{
if(m%i==0 && n%i==0)
{
gcd=i;
}
}
lcm=m*n/gcd;
printf("最大公约数为:%d\n",gcd);
printf("最小公倍数为:%d\n",lcm);
return 0;
}
相关问题
c语言编写输入两个正整数m和n,求求最大公约数和最小公倍数
这里提供一种使用辗转相除法求解最大公约数和最小公倍数的C语言代码:
```c
#include <stdio.h>
int main() {
int m, n, r, gcd, lcm;
printf("请输入两个正整数:\n");
scanf("%d%d", &m, &n);
int a = m, b = n;
while (b != 0) {
r = a % b;
a = b;
b = r;
}
gcd = a;
lcm = m * n / gcd;
printf("最大公约数为:%d\n", gcd);
printf("最小公倍数为:%d\n", lcm);
return 0;
}
```
代码中使用了辗转相除法求解最大公约数,最小公倍数则可以通过公式m*n/d计算得出。同时,为了保留输入的原始值,代码中使用了两个变量a和b来进行计算。
用C语言实现输入两个正整数m和n,求其最大公约数和最小公倍数
非常感谢您的提问!下面是实现输入两个正整数m和n,求其最大公约数和最小公倍数的 C 语言代码:
```c
#include <stdio.h>
int gcd(int m, int n) { // 求最大公约数
int r;
while (n > 0) {
r = m % n;
m = n;
n = r;
}
return m;
}
int lcm(int m, int n) { // 求最小公倍数
return m * n / gcd(m, n);
}
int main() {
int m, n, hcf, lcm;
printf("请输入两个正整数m和n:\n");
scanf("%d %d", &m, &n);
hcf = gcd(m, n);
lcm = lcm(m, n);
printf("最大公约数:%d\n", hcf);
printf("最小公倍数:%d\n", lcm);
return 0;
}
```
希望这份代码能够解决您的疑惑。如果您还有其他问题,欢迎随时提出!
阅读全文