欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数学-筛选素数

程序员文章站 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;
} 

相关标签: 素数筛选 dfs