数学-筛选素数
程序员文章站
2022-04-09 23:13:03
...
#include<stdio.h>
#define N 100000000
int a[N],v[10];
int count=0;
//素数筛选表
void init(){
int i,j;
for(i=2;i<N;i++){
a[i]=1;//全部标记为素数
}
for(i=2;i*i<N;i++){
if(a[i]>0){
for( j=i*i;j<N;j+=i){
a[j]=0;
}
}
}
}
void dfs(int num,int m){
if(m==8){
if(a[num]){
count++;
}
return ;
}
for(int i=num?0:1;i<8;i++){//判断是否为首位
if(!v[i]){
v[i]=1;
dfs(num*10+i,m+1);
v[i]=0;
}
}
}
int main(){
init();
dfs(0,0);
printf("%d\n",count);
return 0;
}
上一篇: 过滤器控件——FilterView