建立素数表
1 /********************************************* 2 3 类型一:建立素数表,存在数组里 4 5 ********************************************/ 6 7 int a[num]={2,3};//a[i]里存素数 8 void db1() 9 { 10 int i,j,k=2,flag; 11 for(i = 5; ; i + = 2) 12 { 13 flag=1; 14 for(j=0; a[j]*a[j]<=i; j++) 15 { 16 if(i%a[j]==0) 17 { 18 flag=0; 19 break; 20 } 21 } 22 if(flag) 23 a[k++]=i; 24 if(k==num) 25 break; 26 } 27 }
给一个数判断是否为素数
1 /******************************************* 2 3 类型二: 4 5 *************************************************/ 6 bool hash[num];//0或1判断i是否为素数 7 void db2() 8 { 9 int i,j; 10 hash[2]=1; 11 hash[3]=1; 12 for(i=5;i<num;i+=2) 13 { 14 for(j=3;j*j<=i;j++) 15 if(i%j==0) 16 break; 17 if(j*j>i) 18 hash[i]=1; 19 } 20 }