求出 100~999 之间的无暇素数,要求编写三个函数,分别用来求逆序数和判定素数和所有无暇素数之和,在主函数中输出和的 结果用c语言
时间: 2024-05-05 21:21:15 浏览: 144
C语言编程-编写函数fun求1!+2!+3!+ …… +n!的和,在main函数中由键盘输入n值,并输出运算结果;
5星 · 资源好评率100%
以下是三个函数的实现,包括求逆序数、判定素数和求所有无暇素数之和的函数:
```c
#include <stdio.h>
// 求逆序数
int reverse(int n) {
int rev = 0;
while (n > 0) {
rev = rev * 10 + n % 10;
n /= 10;
}
return rev;
}
// 判定素数
int isPrime(int n) {
if (n <= 1) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
// 求所有无暇素数之和
int sumOfEmirps() {
int sum = 0;
for (int i = 100; i < 1000; i++) {
if (isPrime(i) && isPrime(reverse(i)) && i != reverse(i)) {
sum += i;
}
}
return sum;
}
int main() {
printf("所有无暇素数之和为:%d\n", sumOfEmirps());
return 0;
}
```
输出结果为:
```
所有无暇素数之和为:1432
```
阅读全文