
当然,以下是一个使用辗转相除法(也称为欧几里得算法)求两个整数最大公约数的C语言程序示例。
#include <stdio.h> // 函数声明:计算a和b的最大公约数 int gcd(int a, int b); int main() { int num1, num2; // 输入两个整数 printf("请输入两个整数:\n"); scanf("%d %d", &num1, &num2); // 计算并输出它们的最大公约数 int result = gcd(num1, num2); printf("%d 和 %d 的最大公约数是 %d\n", num1, num2, result); return 0; } // 使用辗转相除法计算a和b的最大公约数 int gcd(int a, int b) { while (b != 0) { // 当余数不为0时继续循环 int temp = b; // 将当前的除数保存为临时变量 b = a % b; // 更新除数为当前的余数 a = temp; // 更新被除数为原来的除数 } return a; // 当余数为0时,返回此时的被除数作为最大公约数 }程序说明:
- 输入部分:用户输入两个整数num1和num2。
- 函数定义:定义了一个名为gcd的函数,用于计算两个整数的最大公约数。
- 辗转相除法实现:在gcd函数中,通过不断将较大的数除以较小的数,并将余数赋值给较小数,直到余数为零为止。此时,非零的那个数即为这两个数的最大公约数。
- 输出结果:主函数调用gcd函数,并打印结果。
运行示例:
假设用户输入的两个整数是48和18,程序的运行过程如下:
请输入两个整数: 48 18 48 和 18 的最大公约数是 6希望这个示例能够帮助你理解如何使用C语言和辗转相除法来计算两个整数的最大公约数!
