lamb1228 @ 2024-09-21 16:08:43
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
// 检查一个数是否为回文数和素数
int ok(int n)
{
// 如果 n 是偶数,它既不可能是素数也不可能是回文数(除了2)
if (n % 2 == 0)
return 0;
// 检查是否为回文数
int hh = 0, o = n, temp;
while (n > 0)
{
temp = n % 10;
hh = hh * 10 + temp;
n /= 10;
}
if (o != hh)
return 0;
// 检查是否为素数
int ss = sqrt(o);
for (int d = 3; d <= ss; d += 2)
{
if (o % d == 0)
return 0;
}
return 1;
}
int main()
{
int a, b;
int count = 0;
// 读取输入值
scanf("%d %d", &a, &b);
// 动态分配内存来存储符合条件的数字
int *hhss = (int *)malloc((b - a) * sizeof(int));
// 寻找并打印符合条件的数字
for (int i = a; i < b; i++)
{
if (ok(i))
{
printf("%d\n", i);
hhss[count++] = i;
}
}
free(hhss);
return 0;
}