C语言编程:求两个正整数m、n,输出两个数的最大公约数。注意:输入时,允许用户随意先输入大的或小的整数。
时间: 2023-06-04 10:02:16 浏览: 518
这是一个很不错的编程题目。以下是一个使用辗转相除法求解最大公约数的 C 语言代码示例:
```
#include <stdio.h>
int main() {
int m, n, remainder;
printf("请输入两个正整数m、n:");
scanf("%d%d", &m, &n);
while (n != 0) {
remainder = m % n;
m = n;
n = remainder;
}
printf("最大公约数为:%d\n", m);
return 0;
}
```
代码说明:首先从用户输入中获取两个正整数 m 和 n,然后根据辗转相除法求解它们的最大公约数。具体过程是:每次用 m 除以 n,得到余数 remainder,然后将 n 赋值给 m,remainder 赋值给 n,直到 n 为 0,此时的 m 即为最大公约数。最后将 m 输出即可。
相关问题
编程:求两个正整数m,n,输入两个数的最大公约数.注意:输入时,允许用户随意先输入大的或小的整数(C语言)
好的,以下是 C 语言代码实现:
```c
#include <stdio.h>
int main() {
int m, n, temp;
printf("请输入两个正整数:\n");
scanf("%d%d", &m, &n);
// 交换 m 和 n 的值,使得 m > n
if (m < n) {
temp = m;
m = n;
n = temp;
}
while (n != 0) {
temp = m % n;
m = n;
n = temp;
}
printf("最大公约数为:%d\n", m);
return 0;
}
```
在这个代码中,我们使用了 `scanf()` 函数来让用户从键盘上输入两个正整数。接着,我们使用了 `if` 语句来判断哪个数较大,如果是第一个数较小,则交换两个数的值,使得第一个数较大。然后,我们使用了一个 `while` 循环来求出两个数的最大公约数,具体做法是:用较大的数除以较小的数,得到余数,然后将较小的数赋值为原来的余数,再用新的较小的数去除以原来的余数,重复这个过程,直到余数为0,此时的较小的数就是两个数的最大公约数。最后,我们使用 `printf()` 函数来输出结果。
希望这个代码对您有所帮助!
用c语言编程:输入两个正整数m和n,求其最大公约数和最小公倍数
好的,这是一个关于算法的问题。输入两个正整数m和n,可以使用辗转相除法来求它们的最大公约数,同时可以根据公式 m*n = 最大公约数 * 最小公倍数,来求出最小公倍数。具体实现可以参考以下代码:
```
#include <stdio.h>
int main()
{
int m, n, gcd, lcm, i;
printf("输入两个正整数,用空格隔开:");
scanf("%d%d", &m, &n);
for(i=1; i<=m && i<=n; ++i)
{
// 判断i是否为m、n的公约数
if(m%i==0 && n%i==0)
gcd = i;
}
lcm = m*n / gcd;
printf("最大公约数:%d\n", gcd);
printf("最小公倍数:%d\n", lcm);
return 0;
}
```
希望能够解决您的问题!
阅读全文