标签:
素数是遇到的问题经常出现的内容,判断一个数是否是素数,基本上所有人都会,但是如果是很大范围内求素数,普通的方法求容易超时,于是就可以用到可以模板,素数打表。
1 //求一千万以内的素数 2 #include <iostream> 3 #include <cstdio> 4 #include <cstring> 5 using namespace std; 6 int a[10000005]; 7 void sushu() 8 { 9 memset(a,0,sizeof(a)); //所有的数标记为0,0表示素数,1表示非素数 10 a[0]=1,a[1]=1; //0,1标记为非素数 11 for(int i=2; i<=5000000; i++) 12 { 13 if(!a[i]) 14 for(int j=i+i; j<=10000000; j+=i) //每一位由素数组成的数,一定不是素数 15 { 16 a[j]=1; 17 } 18 } 19 for(int i=1; i<=1000; i++) 20 if(!a[i]) 21 printf("%d ",i); 22 } 23 int main() 24 { 25 sushu(); 26 }
标签:
原文地址:http://www.cnblogs.com/pshw/p/4780129.html