对于每一个数:
1.若为素数,由于自身只能被1和自己整除,所以在筛素数时不会被筛去。
2.若为合数,由于一定能被素因子分解,所以会被第二层循环时作为prime[j]的倍数被筛去。
重点:if( i%prime[j]==0 ) break;
这是因为如果prime[j]应该是i的最小素因子,当i%prime[j]==0时,应该及时停止,因为prime[j+1]就不是i的最小素因子了。
对于每一个数:
1.若为素数,由于自身只能被1和自己整除,所以在筛素数时不会被筛去。
2.若为合数,由于一定能被素因子分解,所以会被第二层循环时作为prime[j]的倍数被筛去。
重点:if( i%prime[j]==0 ) break;
这是因为如果prime[j]应该是i的最小素因子,当i%prime[j]==0时,应该及时停止,因为prime[j+1]就不是i的最小素因子了。
本文标题:线性筛素数
本文链接:https://www.haomeiwen.com/subject/hlzkpxtx.html
网友评论