需要写一个高效的c语言代码快速找到一个大数的最大约数
时间: 2024-11-22 16:48:43 浏览: 3
C语言-输入一个数判断是否为素数
在C语言中,寻找大数的最大公约数(Greatest Common Divisor, GCD)可以使用欧几里得算法,也称为辗转相除法。这是一个递归的过程,直到余数为0,此时除数就是最大公约数。下面是一个简单的高效版本的代码:
```c
#include <stdio.h>
// 使用递归计算两个数的最大公约数
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
int main() {
long long num, result = 0; // 输入的大数和结果
printf("请输入一个大数:");
scanf("%lld", &num);
// 使用long long防止溢出
result = gcd(num, num); // 因为大数的GCD也是它本身
printf("输入的大数 %lld 的最大约数是 %lld\n", num, result);
return 0;
}
```
阅读全文