题解 | #质数数量#

质数数量

https://ac.nowcoder.com/acm/problem/22226

#include<stdio.h>
#include<math.h>
#define kk 1000001
int main ()
{
    int t=0,n=0;//t个数输入n
    int i=0,j=0,k=0;//循环
    int cnt=0;//标记
    int count=0;//计素数
    int a[kk]={0};
        for(j=2;j<=kk;j++)//数组顺存素数个数
        {
        	cnt=0;//更新标记
            for(k=2;k<=sqrt(j);k++)//开平方减少重复运算
            {
                if(j%k==0)//不是素数
                {
                    cnt=1;
                    break;
                }
            }
            if(cnt==0)//是素数
            {
            	count++;
			} 
			a[j]=count;//n前素数个数存入数组
		}
		scanf("%d",&t);
		for(i=1;i<=t;i++)
		{
			scanf("%d",&n);
			printf("%d\n",a[n]);
		}
    return 0;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
04-02 18:53
继京东给外卖员缴纳五险一金之后,京东又发公告:达达员工逐步升级至20薪!这是从去年以来京东宣布第8次加薪。别说了,我现在就是东孝子!!
无助的缄默:20薪拿不满的,前5%拿20薪,后面还有18,16,15,14薪,相当于把低绩效的人的工资补给高绩效的人
投递京东等公司7个岗位 >
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务