输入n,求n以内的所有素数
算法用两个数组存储数据:
一个是prime[],存储n以内所有的素数,其index为pi,初值为0
一个是is_prime[i],表示自然数i(i<=n)是不是质数。
算法如下:
linear_prime_sieves
1: set is_prime[] to true
2: for i=2 to n
3: if is_prime[i]=true then prime[pi++]=i
4: for j=0 to pi-1
5: if prime[j]*i>n then exit loop_j
6: is_prime[prime[j]*i]=false
7: if i mod prime[j]=0 then exit loop_j
8: endif
9: endif