回文素数保存在数组,c语言
时间: 2024-11-06 14:10:08 浏览: 10
回文素数是指从前往后读和从后往前读都一样的质数,例如13、101等。在C语言中,要将回文素数保存在一个数组里,首先需要编写函数检查是否是素数和回文数,然后创建数组并填充这些数字。以下是一个简单的步骤:
1. **定义检查素数**的函数:可以使用埃拉托斯特尼筛法(Sieve of Eratosthenes)生成一定范围内的素数。
```c
#include <stdbool.h>
bool isPrime(int num) {
if (num <= 1)
return false;
for (int i = 2; i * i <= num; ++i)
if (num % i == 0)
return false;
return num > 1;
}
```
2. **定义检查回文**的函数:比较数字本身与其反转是否相等。
```c
bool isPalindrome(int num) {
int reversed = 0, original = num;
while (original != 0) {
int remainder = original % 10;
reversed = reversed * 10 + remainder;
original /= 10;
}
return reversed == num;
}
```
3. **主程序部分**:创建数组,遍历一定范围内寻找回文素数,并存储到数组中。
```c
#define MAX_NUM 10000 // 你可以调整这个值来搜索更大范围的回文素数
int palindromePrimes[MAX_NUM];
void findPalindromePrimes() {
int count = 0;
for (int i = 2; i < MAX_NUM; ++i) {
if (isPrime(i) && isPalindrome(i)) {
palindromePrimes[count++] = i;
}
}
}
// 示例如何使用
int main() {
findPalindromePrimes();
printf("First few palindromic primes are: ");
for (int i = 0; i < count; ++i) {
printf("%d ", palindromePrimes[i]);
}
return 0;
}
```
阅读全文