素数表 最快,最好记

来源:互联网 发布:python spark sql 编辑:程序博客网 时间:2024/05/17 01:30

#include<stdio.h>
long long num[1000001],a[1000001];
int main()
{
 long long i,j,n;
 long long count=0;
 num[2]=1;
 for(i=3;i<=1000001;i++)
 {
  num[i++]=1;
  num[i]=0;
 }
 for(i=3;i<=1000001;i++)
 {
  for(j=i+i;j<=1000001;j+=i)
  {
    num[j]=0;
  }
 }
 for(i=2;i<=1000001;i++)
 {
  if(num[i]==1)
  count++;
  a[i]=count;
 }
 while(~scanf("%lld",&n))
 {
  printf("%lld\n",a[n]);
 }
 return 0;
}
1000000
78498

0 0