题解 | #质数数量#

质数数量

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

刚开始把flag放在循环外面了,因此还是出错,后来知道要让flag重置为1,要放在里面。

using namespace std;
#define int long long
#define endl '\n'
signed main() {
    ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    int t,n,sum=0;
    int a[1000001]={0};//用数组来存放N之前的质数
    
    for(int i=2;i<=1000000;i++){
         int flag=1;//注意这里不能放循环外面,因为在每次检查数字之前,要把flag重置为1
        for(int j=2;j<=sqrt(i);j++){
            if(i%j==0)
            {
                flag=0;//说明不是质数
                break;
            }
        }
        if(flag==1)
            sum++;//说明是质数,+1
        a[i]=sum;//记录在i之内有多少个质数
    }
    cin>>t;
   while(t--){
       cin>>n;
       cout<<a[n]<<endl;
   }
    return 0;
}

全部评论

相关推荐

05-30 18:54
武汉商学院 Java
湫湫湫不会java:先投着吧,大概率找不到实习,没实习的时候再加个项目,然后把个人评价和荣誉奖项删了,赶紧成为八股战神吧,没实习没学历,秋招机会估计不多,把握机会。或者说秋招时间去冲实习,春招冲offer,但是压力会比较大
点赞 评论 收藏
分享
迟缓的斜杠青年巴比Q了:简历被投过的公司卖出去了,我前两天遇到过更离谱的,打电话来问我有没有意向报班学Java学习,服了,还拿我学校一个学长在他们那报班学了之后干了华为OD当招牌
点赞 评论 收藏
分享
这一集&nbsp;硕士输的很惨
HoePointer:普通硕士的悲哀,高的进不去,低的要不起
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务