有三个WA
by WHU_Lames @ 2020-05-08 20:21:35
@[WHU_Lames](/user/339801) 判断质数没必要那么复杂,我给你我的代码,你可以看看我是怎么判断质数的
```
#include<bits/stdc++.h>
using namespace std;
int n,sum=0,ans=0;
int f(int x){//判断质数
if(x==1) return 0;
for(int i=2;i*i<=x;++i){
if(x%i==0) return 0;
}
return 1;
}
int main(){
cin>>n;
for(int i=2;i<n;++i){
ans+=f(i);
if(f(i)==1) cout<<i<<endl,sum+=i;
if(sum+i>=n) break;
}
cout<<ans;
return 0;
}
```
by tangrunxi @ 2020-05-08 20:29:22
这个方法虽然快但是不好用一不小心就 WA 了
by critnos @ 2020-05-08 20:36:05
@[tangrunxi](/user/231147) 您的那个有点慢。
```
int f(int x)
{
if(x==2) return 1;
if(x==1||x==0||x%2==0) return 0;
for(int i=3;i*i<=x;i+=2)
{
if(x%i==0) return 0;
}
return 1;
}
```
by JRzyh @ 2020-05-08 20:41:09
@[Zhaoyuhang2008](/user/242524) 反正这题不卡时限,懒得写那么多
by tangrunxi @ 2020-05-08 20:42:00
@[WHU_Lames](/user/339801) ~~数学题当然是打表最快~~
by WanderingTrader @ 2020-05-08 20:44:30
@[zycany](/user/270791) 最好的方法:
```
if(x%2==0) return 0;
if(x%3==0) return 0;
if(x%5==0) return 0;
if(x%7==0) return 0;
if(x%11==0) return 0;
......
```
by tangrunxi @ 2020-05-08 20:46:27
@[tangrunxi](/user/231147) ……%%%
by WanderingTrader @ 2020-05-08 21:05:51