线性筛素数

线性筛素数_第1张图片
(代码一定要自己打欧)

对于每一个数:

1.若为素数,由于自身只能被1和自己整除,所以在筛素数时不会被筛去。

2.若为合数,由于一定能被素因子分解,所以会被第二层循环时作为prime[j]的倍数被筛去。

重点:if( i%prime[j]==0 ) break;

这是因为如果prime[j]应该是i的最小素因子,当i%prime[j]==0时,应该及时停止,因为prime[j+1]就不是i的最小素因子了。

你可能感兴趣的:(线性筛素数)