一、问题
搜索3000至6000之间的超级素数(假设最多为10个),按照出现的顺序保存到一个一维数组中,并按照十进制整型输出该数组第3个元素的值。
其中,超级素数的定义是:若一个素数从低位到高位依次去掉一位数后仍然是素数,此数为超级素数。例如3739是素数,同时373,37,3都是素数。
二、代码
#include <stdio.h>
int sushu(int m){
int flag=0;
if(m==1 || m==2){
flag=0;//flag是0时是素数
}
else{
for(int i=2;i<m/2;i++){
if(m%i==0){
flag=1;
}
}
}
return flag;
}
int chaojisushu(int x){
int yi=x/10;
int er=x/100;
int san=x/1000;
if((sushu(yi)==0)&&(sushu(er)==0)&&(sushu(san)==0)&&(sushu(x)==0)){
return x;
}
else return 0;
}
int main(){
int arr[256];
int j,i;
for(i=3000,j=0;i<=6000;i++){
if(chaojisushu(i)!=0){
arr[j]=i;
j+=1;
}
}
printf("%d",arr[2]);
return 0;
三、tips
1.在int main之前定义函数,学会写判断素数函数
2.会把一个数字的每一位拆分