用c语言在100到9999内求超级素数的个数,所有超级素数的和,最大的超级素数
时间: 2024-02-01 14:15:54 浏览: 74
超级素数是指一个素数的每一位数字都是素数。因此,我们需要编写一个函数来判断一个数是否为素数,并编写另一个函数来判断一个数的每一位数字是否为素数。
以下是实现代码:
```c
#include <stdio.h>
#include <math.h>
// 判断一个数是否为素数
int isPrime(int n) {
if (n <= 1) {
return 0;
}
int sqrt_n = sqrt(n);
for (int i = 2; i <= sqrt_n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
// 判断一个数的每一位数字是否为素数
int isSuperPrime(int n) {
int digits[10], i = 0;
while (n > 0) {
digits[i++] = n % 10;
n /= 10;
}
for (int j = 0; j < i; j++) {
if (!isPrime(digits[j])) {
return 0;
}
}
return 1;
}
int main() {
int count = 0;
int sum = 0;
int max = 0;
for (int i = 100; i <= 9999; i++) {
if (isPrime(i) && isSuperPrime(i)) {
count++;
sum += i;
if (i > max) {
max = i;
}
}
}
printf("超级素数个数:%d\n", count);
printf("所有超级素数的和:%d\n", sum);
printf("最大的超级素数:%d\n", max);
return 0;
}
```
该代码会输出三个结果:超级素数个数、所有超级素数的和以及最大的超级素数。
阅读全文