加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

计算从[1,n]的素数个数

发布时间:2020-12-13 21:14:04 所属栏目:PHP教程 来源:网络整理
导读:数组大小要大于根号下最大值 long long f[ 340000 ],g[ 340000 ],n;void init(){ long long i,j, m ; for ( m = 1 ; m *m =n;++ m )f[ m ]=n/ m - 1 ; for (i= 1 ;i= m ;++i)g[i]=i- 1 ; for (i= 2 ;i= m ;++i){ if (g[i]==g[i- 1 ]) continue ; for (j= 1 ;

数组大小要大于根号下最大值

long long f[340000],g[340000],n; void init(){ long long i,j,m; for(m=1;m*m<=n;++m)f[m]=n/m-1; for(i=1;i<=m;++i)g[i]=i-1; for(i=2;i<=m;++i){ if(g[i]==g[i-1])continue; for(j=1;j <= min(m-1,n/i/i);++j){ if(i*j<m)f[j]-=f[i*j]-g[i-1]; else f[j]-=g[n/i/j]-g[i-1]; } for(j=m;j>=i*i;--j)g[j]-=g[j/i]-g[i-1]; } } int main(){ while(scanf("%I64d",&n)!=EOF){ init(); printf("%I64dn",f[1]); } return 0; }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读