质数数量的求解

Posted 勇敢*牛牛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了质数数量的求解相关的知识,希望对你有一定的参考价值。

质数(prime number)又称素数,有无限个,质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。

例如小于10的质数有2,3,5,7。

输入描述:

第一行输入一个整数T,表示询问的个数

接下来T行每行输入一个整数n.

1<=T<=1e8,1<=n<=1000000

输出描述:

对于每个询问n输出小于等于n的的质数的个数。

示例1

输入

2
10
1000000

输出

4
78498
#include<stdio.h>
#define N 1000001
int a[N],i,j,sum=0;
void zs()

    for(i=2;i<N;i++)
        for(j=2;j*j<=i;j++)
            if(i%j==0)  break;
        if(j*j>i)  ++sum;
        a[i]=sum;
    

int main()

    zs();
    int T,n;
    scanf("%d",&T);
    while(T--)
        scanf("%d",&n);
        printf("%d\\n",a[n]);
    
    return 0;

以上是关于质数数量的求解的主要内容,如果未能解决你的问题,请参考以下文章