四位可逆素数

时间:2022-10-13 20:40:54

//求四位的可逆素数
#include"stdio.h"
#include"stdlib.h"
int main()
{int a[9000];//建立一张素数的表
int i,j,k,l=0,num=0;
for( i=1000;i<=9999;i++)
{int key=1;//key等于1时表示是素数
 for(j=2;j<=i/2;j++)
 { if(i%j==0){ key=0; break;} }
 if(key){ a[l++]=1; } 
 else a[l++]=0; 
}
for(i=1000;i<=9999;i++)
{
 if(a[i-1000])
{j=1;k=0;   
while(j<=1000)
{k=k+(i%(j*10)/j)*1000/j;//k存储的是逆序后的数
j=j*10;}
if(a[k-1000])//直接在素数表中查询即可,这里防止重复输出
{printf("%d  ",i);
if(++num%10==0) printf("\n");
} }
}
/*for(i=0;i<l;i++)
{printf("%d_%d ",i+1000,a[i]);
if((i+1)%8==0)
printf("\n");}
*/
printf("\n");
system("pause");
}


 

 

四位可逆素数