本帖最后由 yangchuanju 于 2023-12-5 07:24 编辑
某正整数以内素数个数
最小的素数是2,3,5,7,11,13,17,19,23,29,31,……
30以内有10个素数,210以内有46个素数,……
30以内有10个整数是3的倍数:3,6,9,12,15,18,21,24,27,30;
30以内有6个整数是5的倍数:5,10,15,20,25,30;……
210以内有70个整数是3的倍数:3,6,9,12,15,18,21,24,27,30;33,……,210;
210以内有42个整数是5的倍数:5,10,15,20,25,30;35,……,210;
210以内有30个整数是7的倍数:7,14,21,28,35,……,210;
……
在求正整数30以内素数个数时,可以按照埃氏筛法首先用2除1-30中的30个正整数,筛除掉其中的2的倍数,但要保留下2来,剩余16个正整数;
接着再用3除去剩余16个正整数中的3的倍数,但要保留下3来,又筛掉9,15,21,27四数,剩余12个正整数;
继续再用5除去剩余12个正整数中的5的倍数,但要保留下5来,又筛掉25一数,剩余11个正整数:
1,2,3,5,7,11,13,17,19,23,29;
按照数论的新规定:1即不是素数,也不是合数,故要在上述的11个正整数中去掉1,下剩的10个正整数才是素数。
对于较大的正整数N,可用连乘积计算N中的素数个数——N*1/2*(1-1/3)*(1-1/5)*(1-1/7)*…*(1-1/p)-1+r
=N/2*2/3*4/5*6/7*…*(p-1)/p-1+r,
式中P是N平方根内的最大素数,r是N平方根内的素数个数。
|