互减法求两个数的最大公约数
时间: 2024-02-04 19:06:14 浏览: 122
互减法,也称为辗转相减法,是一种求两个数的最大公约数的算法。它的步骤如下:
1. 给定两个正整数。
2. 判断两个数是否相等,若相等,则最大公约数即为它们本身。
3. 若两个数不相等,较大的数减去较小的数,然后再用较小的数减去所得差值,重复这个操作,直到两个数相等为止。
4. 两个数相等时,它们的值即为最大公约数。
对应的程序代码如下:
```
#include <stdio.h>
int main() {
int num1, num2;
printf("请输入两个数!\n");
scanf("%d%d", &num1, &num2);
if (num1 == num2) {
printf("最大公约数为%d\n", num1);
} else {
while (num1 != num2) {
if (num1 > num2)
num1 = num1 - num2;
else
num2 = num2 - num1;
}
printf("最大公约数为:%d\n", num1);
}
return 0;
}
```
相关问题
相减法求两个整数最大公约数
答:可以使用相减法求两个整数的最大公约数。具体方法是,先比较两个数的大小,将较大的数减去较小的数,得到一个新的数。然后,将较小的数和这个新的数比较,再将较大的数减去较小的数,得到另一个新的数。重复这个过程,直到两个数相等为止,这个相等的数就是它们的最大公约数。
c语言辗转相减法求两个正整数最大公约数
可以使用以下代码实现:
```c
#include <stdio.h>
int gcd(int a, int b) {
while (a != b) {
if (a > b) {
a = a - b;
} else {
b = b - a;
}
}
return a;
}
int main() {
int a, b;
printf("请输入两个正整数:\n");
scanf("%d %d", &a, &b);
printf("它们的最大公约数是:%d\n", gcd(a, b));
return 0;
}
```
这个程序使用辗转相减法求两个正整数的最大公约数。
阅读全文