制造回文数是按着题目中的提示来的, 但是全都超时了,求救
#include<stdio.h>
long isz(long x)
{
for (int i = 2; i < x; i++)
{
if (x % i == 0)
{
return 0;
break;
}
}
return 1;
}
int main()
{
int d1,d2,d3,d4,a,b,i=0,n=0;
long palindrome[11111],ans[10000];
scanf("%d%d", &a, &b);
for (d1 = 1; d1 <= 9; d1 += 2)
{ // 只有奇数才会是素数
palindrome[i] = d1;//(处理回文数...)
i++;
}
for (d1 = 1; d1 <= 9; d1 += 2)
{ // 只有奇数才会是素数
palindrome[i] = 10 * d1 + d1;//(处理回文数...)
i++;
}
for (d1 = 1; d1 <= 9; d1 += 2)
{ // 只有奇数才会是素数
for (d2 = 0; d2 <= 9; d2++)
{
palindrome[i] = 100 * d1 + 10 * d2 + d1 ;//(处理回文数...)
i++;
}
}
for (d1 = 1; d1 <= 9; d1 += 2)
{ // 只有奇数才会是素数
for (d2 = 0; d2 <= 9; d2++)
{
palindrome[i] = 1000 * d1 + 100 * d2 + 10 * d2 + d1;//(处理回文数...)
i++;
}
}
for (d1 = 1; d1 <= 9; d1 += 2)
{ // 只有奇数才会是素数
for (d2 = 0; d2 <= 9; d2++)
{
for (d3 = 0; d3 <= 9; d3++)
{
palindrome[i] = 10000 * d1 + 1000 * d2 + 100 * d3 + 10 * d2 + d1;//(处理回文数...)
i++;
}
}
}
for (d1 = 1; d1 <= 9; d1 += 2)
{ // 只有奇数才会是素数
for (d2 = 0; d2 <= 9; d2++)
{
for (d3 = 0; d3 <= 9; d3++)
{
palindrome[i] = 100000 * d1 + 10000 * d2 + 1000 * d3 + 100 * d3 + 10*d2+d1;//(处理回文数...)
i++;
}
}
}
for (d1 = 1; d1 <= 9; d1 += 2)
{ // 只有奇数才会是素数
for (d2 = 0; d2 <= 9; d2++)
{
for (d3 = 0; d3 <= 9; d3++)
{
for (d4 = 0; d4 <= 9; d4++)
{
palindrome[i] = 1000000 * d1 + 100000 * d2 + 10000 * d3 +1000*d4+ 100 * d3 + 10 * d2 + d1;//(处理回文数...)
i++;
}
}
}
}
for (d1 = 1; d1 <= 9; d1 += 2)
{ // 只有奇数才会是素数
for (d2 = 0; d2 <= 9; d2++)
{
for (d3 = 0; d3 <= 9; d3++)
{
for (d4 = 0; d4 <= 9; d4++)
{
palindrome[i] = 10000000 * d1 + 1000000 * d2 + 100000 * d3 + 10000 * d4 + 1000 * d4 + 100 * d3 +10*d2+d1;//(处理回文数...)
i++;
}
}
}
}
for (int j = 0; j < 11111; j++)
{
if (isz(palindrome[j]))
{
ans[n] = palindrome[j];
n++;
}
}
for (int j = 0; j < n - 1; j++)
printf("%ld\n", ans[j]);
return 0;
}```