已知某一正整数,其各位数字均为素数,而且各位数字之和也为素数。例如,232的各位数字 2、3、2 及各位数字之和2+3+2=7都为素数。编写程序,找出1~1000中满足该条件的所有正整数,并将结果按每行5个输出。用C语言写
时间: 2023-07-15 09:11:15 浏览: 234
以下是代码实现:
```c
#include <stdio.h>
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 isPrimeDigits(int n) {
while (n) {
int digit = n % 10;
if (!isPrime(digit)) {
return 0;
}
n /= 10;
}
return 1;
}
int main() {
int count = 0;
for (int i = 2; i <= 1000; i++) {
if (isPrime(i) && isPrimeDigits(i) && isPrime(i / 10 + i % 10)) {
printf("%d ", i);
count++;
if (count % 5 == 0) {
printf("\n");
}
}
}
return 0;
}
```
代码解释:
- `isPrime(n)` 函数判断一个数是否为素数。
- `isPrimeDigits(n)` 函数判断一个数的各位数字是否均为素数。
- 在主函数中,遍历 1~1000 中的每一个数,如果它是素数且各位数字均为素数且各位数字之和也为素数,则输出该数,并在输出了 5 个数后换行。
阅读全文