2025-03-01 学习记录--C/C++-C语言 使用欧几里得算法(辗转相除法)计算两个整数的最大公约数
合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻
C
语言 使用欧几里得算法(辗转相除法)计算两个整数的最大公约数
#include <stdio.h>
// 计算最大公约数(GCD)
long long gcd(long long a, long long b) {
while (b != 0) { // 当 b 不为 0 时循环
long long temp = b; // 临时变量存储 b 的值
b = a % b; // 计算 a 除以 b 的余数,赋值给 b
a = temp; // 将之前存储的 b 的值赋值给 a
}
return a; // 当 b 为 0 时,a 就是最大公约数
}
int main() {
long long a, b; // 定义两个长整型变量 a 和 b,用于存储输入的两个整数
printf("请输入两个整数:"); // 提示用户输入
scanf("%lld %lld", &a, &b); // 读取用户输入的两个整数,分别存储到 a 和 b 中
// 调用欧几里得算法,得到最大公约数
long long result = gcd(a, b); // 调用 gcd 函数计算 a 和 b 的最大公约数
printf("%lld 和 %lld 的最大公约数是 %lld\n", a, b, result); // 输出结果
return 0; // 程序正常结束
}