C语言求出39位自幂数
时间: 2023-11-23 21:56:08 浏览: 80
自守数(自幂数)是指一个数字,如果它各个位数上的数字的幂次之和等于它本身,那么这个数字就是自守数。39位的自守数是指该数字是一个39位数,并且满足自守数的条件。
对于一个39位的自守数,我们可以使用循环来遍历所有可能的39位数字,并检查每个数字是否满足自守数的条件。
下面是使用C语言编写的代码,用于求解39位自守数:
```c
#include <stdio.h>
#include <math.h>
int main() {
long long num, temp, sum, digit;
int count = 0;
for (num = pow(10, 38); num < pow(10, 39); num++) {
temp = num;
sum = 0;
while (temp > 0) {
digit = temp % 10;
temp /= 10;
sum += pow(digit, 39);
}
if (sum == num) {
printf("%lld\n", num);
count++;
}
}
printf("Total %d 39-digit automorphic numbers found.\n", count);
return 0;
}
```
该代码使用了一个循环来遍历所有可能的39位数字,对每个数字进行判断是否为自守数。其中,变量`num`表示当前判断的数字,变量`temp`用于保存`num`的副本进行计算,变量`sum`用于计算各个位数上的数字的幂次之和,量`digit`用于保存每个位数上的数字。
运行该代码,将会输出所有的39位自守数,并统计总数。请注意,由于39位自守数数量较大,运行时间可能较长。
阅读全文