不知道为什么我的打印出来之后121也在结果里面
洛谷的题:P1217 [USACO1.5]回文质数 Prime Palindromes
#include<stdio.h>
int main()
{
int a,b,d,d1,d2,d3,d4,d5,n,j,i=1,flag;
long long palindrome[100000];
scanf("%d %d",&a,&b);
for (d = 1; d <=9 ;d+=2)
{
palindrome[i] = d;
i++;
}
for (d1 = 1; d1 <= 9; d1+=2) //三位
{
for (d2 = 0; d2 <= 9; d2++)
{
palindrome[i] = 100*d1 + 10*d2 +1*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++)
{
for (d4 = 0; d4 <=9; d4++)
{
palindrome[i] = 1000000*d1 + 100000*d2 +10000*d3 + 1000*d4 + 100*d3 + 10*d2 + 1*d1;
i++;
}
}
}
}
for (n = 2; n <= i ; n++)
{
if (palindrome[n] >=a && palindrome[n]<=b)
for (j = 2; j < n; j++)
{
if (palindrome[n] % j == 0)
{
flag = 0;
break;
}
else
flag = 1;
}
if (flag)
{
printf("%lld\n", palindrome[n]);
}
}
return 0;
}
最后一个for语句改为for (j = 2; j < palindrome[n]; j++)