首页 > 代码库 > NEFU 2
NEFU 2
其实就是筛选素数。
如,若能被2是质数,则2的倍数全是合数。如此循环。
#include <iostream>#include <math.h>#include <cstring>#include <cstdio>#include <algorithm>using namespace std;const int Max=(1<<24);bool prime[Max+10];bool judge(int k){ int lim=(int)sqrt(k*1.0)+1; for(int i=2;i<=lim;i++) if(k%i==0) return false; return true;}int main(){ memset(prime,true,sizeof(prime)); prime[0]=prime[1]=false; int e=(int)sqrt(Max*1.0); for(int i=2;i<=e;i++){ if(prime[i]) for(int j=i+i;j<=Max;j+=i) prime[j]=false; } int n; while(scanf("%d",&n)!=EOF){ int c=0,lim; if(n%2==0) lim=n/2; else lim=n/2+1; for(int i=2;i<=lim;i++){ if(prime[i]){ if(prime[n-i]) c++; } } printf("%d\n",c); } return 0;}
NEFU 2
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。