C语言如果一个正整数 P 为素数,且其反序也为素数,那么 P 就为真素数。编写程序按从小到大输出整数M 和 N 之间(包括 M 和 N )的真素数,逗号间隔。如果之间没有真素数,则输出 No。
时间: 2024-12-18 16:29:50 浏览: 1
回文素数C语言.rar
在C语言中,要编写一个程序找出指定范围内的真素数,首先需要创建两个函数,一个用于判断是否为素数,另一个用于查找真素数。以下是基本的步骤:
1. 定义一个函数`is_prime(int num)`,它接受一个整数作为输入,并检查它是否是素数。这可以通过遍历从2到num-1之间的所有数字,看是否存在能整除num的因子来完成。
```c
int is_prime(int num) {
if (num <= 1)
return 0;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0)
return 0;
}
return 1;
}
```
2. 写一个函数`find_true_primes(int m, int n)`,它接收两个整数m和n,然后遍历这个范围内所有的数,判断它们是否既是素数又是反序后的素数(即反转位数后仍然是素数)。
```c
void find_true_primes(int m, int n) {
for (int i = m; i <= n; ++i) {
int rev_i = 0;
for (int j = i; j > 0; j /= 10) {
rev_i = rev_i * 10 + j % 10;
}
if (is_prime(i) && is_prime(rev_i)) {
printf("%d,", i);
} else if (i == n) { // 如果已经检查完范围并且没找到真素数
printf("No");
}
}
printf("\n"); // 结束输出后添加换行符
}
```
3. 最后,在主函数main中调用`find_true_primes(m, n)`,传递你想要找真素数的范围。
```c
int main() {
int m = 10, n = 100; // 示例范围,你可以修改这两个值
find_true_primes(m, n);
return 0;
}
```
运行上述代码,你会得到指定范围内的真素数,如果没有则输出"No"。记得调整`m`和`n`变量的值来改变查找范围。
阅读全文