【问题描述】寻找n以内符合特定条件的素数。各位之和依然为素数的数
【输入形式】一个大于1的正整数n
【输出形式】2-n之间所有满足条件的数,两数之间以一个空格分割
【样例输入】10
【样例输出】2 3 5 7
这该怎么写啊😭,图片是我自己写的,不知道哪里错了,求解答,蟹蟹💕
喜欢的话请采纳我,这样我才有动力继续回答
#include <stdio.h>
#include <stdlib.h>
/* 判断一个数是否为素数 */
int is_prime(int n) {
if (n <= 1) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
/* 计算数字各位之和 */
int digit_sum(int n) {
int sum = 0;
while (n > 0) {
sum += n % 10;
n /= 10;
}
return sum;
}
int main() {
int n;
printf("请输入一个大于1的正整数n:");
scanf("%d", &n);
printf("2-%d之间符合条件的素数为:", n);
for (int i = 2; i <= n; i++) {
if (is_prime(i) && is_prime(digit_sum(i))) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}