-用C语言编程实现辗转相除法求余数
时间: 2024-09-13 14:00:54 浏览: 50
用辗转相除法求最大公约数
辗转相除法,也称为欧几里得算法,是一种用来计算两个正整数a和b的最大公约数(GCD)的方法。其原理是基于这样一个事实:两个整数的最大公约数与它们的差的最大公约数相同。辗转相除法的基本步骤如下:
1. 如果b等于0,则a即为两数的最大公约数。
2. 否则,计算a除以b的余数,记为r。
3. 将b的值赋给a,将r的值赋给b。
4. 重复步骤1到3,直到b为0,此时a的值就是两数的最大公约数。
以下是用C语言实现辗转相除法求余数的代码示例:
```c
#include <stdio.h>
// 函数声明,用于计算最大公约数
int gcd(int a, int b);
int main() {
int num1, num2, remainder;
// 输入两个正整数
printf("请输入两个正整数:");
scanf("%d %d", &num1, &num2);
// 调用函数计算并打印余数
remainder = num1 % num2;
printf("当两个数相除:%d %% %d 的余数是:%d\n", num1, num2, remainder);
// 调用函数计算最大公约数并打印
printf("两数的最大公约数是:%d\n", gcd(num1, num2));
return 0;
}
// 函数定义,用于计算最大公约数
int gcd(int a, int b) {
while (b != 0) {
int r = a % b;
a = b;
b = r;
}
return a; // 当b为0时,a就是最大公约数
}
```
在这段代码中,`gcd`函数实现了辗转相除法,计算并返回两个数的最大公约数。在`main`函数中,程序首先提示用户输入两个正整数,然后通过`gcd`函数计算出这两个数的最大公约数,并打印出相除的余数。
阅读全文