有没有大佬看看怎么回事

P5723 【深基4.例13】质数口袋

有三个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


|