自身是素数,位数相加也是素数c语言
时间: 2024-02-12 19:02:56 浏览: 31
以下是一个示例代码,可以判断一个数是否为素数并且其位数相加也是素数:
```c
#include <stdio.h>
#include <stdbool.h>
bool isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int sumDigits(int n) {
int sum = 0;
while (n > 0) {
sum += n % 10;
n /= 10;
}
return sum;
}
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
if (isPrime(n) && isPrime(sumDigits(n))) {
printf("%d是素数,且位数相加也是素数。\n", n);
} else {
printf("%d不满足条件。\n", n);
}
return 0;
}
```
该程序首先定义了两个函数,`isPrime`函数判断一个数是否为素数,`sumDigits`函数计算一个数的各位数字之和。然后在`main`函数中,用户输入一个整数`n`,程序判断`n`是否满足条件,如果满足则输出提示信息,否则输出不满足条件的信息。