求助

P5736 【深基7.例2】质数筛

`if(zs(a[i])==1) a[i]==0;` 改为 `if(zs(a[i])==1) a[i]=0;`
by int114514 @ 2020-09-18 20:31:13


懂了谢谢
by HP65068 @ 2020-09-18 20:35:28


@[HP65068](/user/369359) 有两个问题: 1. 判断 $n$ 是否为质数,应逐个验证**小于等于** $\sqrt{n}$ 的数是否为 $n$ 的因数 2. 赋值是 `=`,不是判断相等的 `==` 修改后代码如下: ``` cpp #include<bits/stdc++.h> using namespace std; int zs(int a) { if(a==0||a==1) return 1; if(a==2) return 0; for(int i=2;i*i<=a;i++) if(a%i==0) return 1; return 0; } int main() { int a[101]={},n; cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; if(zs(a[i])==1) a[i]=0; } for(int i=1;i<=n;i++) if(a[i]!=0) cout<<a[i]<<" "; return 0; } ```
by wsyhb @ 2020-09-18 20:37:02


|