c语言两个整数的最大公约数
时间: 2024-06-13 20:09:56 浏览: 83
以下是两种C语言求两个整数最大公约数的方法:
1.辗转相除法
```c
#include <stdio.h>
int main() {
int a, b;
int c = 0;
printf("请输入两个整数:");
scanf("%d %d", &a, &b);
c = (a > b) ? b : a; //三目运算符 将最小的赋给c
while (a % c != 0 || b % c != 0) {
c--;
}
printf("最大公约数为:%d\n", c);
return 0;
}
```
2.更相减损法
```c
#include <stdio.h>
int main() {
int a, b, c;
printf("请输入两个整数:");
scanf("%d%d", &a, &b);
c = a % b;
while (c != 0) {
a = b;
b = c;
c = a % b;
}
printf("最大公约数为:%d", b);
return 0;
}
```
相关问题
c语言两个正整数最大公约数
以下是使用C语言求两个正整数最大公约数的例子:
```c
#include <stdio.h>
int gcd(int a, int b) {
if (b == 0) {
return a;
} else {
return gcd(b, a % b);
}
}
int main() {
int a = 12, b = 18;
printf("The GCD of %d and %d is %d\n", a, b, gcd(a, b)); // 输出:The GCD of 12 and 18 is 6
return 0;
}
```
上述代码中,我们定义了一个名为gcd的函数,该函数使用递归的方式计算两个正整数的最大公约数。在主函数中,我们定义了两个变量a和b,并将它们的值分别设置为12和18。然后,我们调用gcd函数来计算a和b的最大公约数,并将结果打印到控制台上。
c语言求两个整数最大公约数和最小公倍数
以下是C语言求两个整数最大公约数和最小公倍数的代码示例:
1. 求最大公约数(辗转相除法)
```c
#include <stdio.h>
int main() {
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
int m = 0; while (m = a % b) {
a = b;
b = m;
}
printf("最大公约数为:%d\n", b);
return 0;
}
```
2. 求最小公倍数
```c
#include <stdio.h>
int main() {
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
int m = 0;
// 找出最小值
m = (a > b ? b : a);
// 假设m为最大公约数
while (1) {
if (a % m == 0 && b % m == 0) {
break;
}
m--;
}
printf("最大公约数为:%d\n", m);
printf("最小公倍数为:%d\n", a * b / m);
return 0;
}
```
阅读全文