poj2262 Goldbach's Conjecture(线性素数筛+暴力枚举)
2017-08-26 17:59
363 查看
线性素数筛板子。原理就是保证每个合数一定是被自己最小的质因子筛掉的。核心就是:if(i%prime[j]==0) break;如果i有prime[j]这个质因子,则i=prime[j]*k, i*prime[j+1]=prime[j]*k *prime[j+1],完全可以在k *prime[j+1]时被筛掉。所以是O(n)的
#include <cstdio> #include <cstring> int const N=1000000+10; int n,prime ,tot=0; bool notprime ; void getprime(){ notprime[1]=1; for(int i=2;i<=N;++i){ if(!notprime[i]) prime[++tot]=i; for(int j=1;j<=tot&&prime[j]*i<=N;++j){ notprime[prime[j]*i]=1; if(i%prime[j]==0) break; } } } int main(){ getprime(); while(scanf("%d",&n)){ if(n==0) break; for(int i=2;i<=n;++i) if(!notprime[i]&&!notprime[n-i]){ printf("%d = %d + %d\n",n,i,n-i);break; } } return 0; }
相关文章推荐
- POJ2262_Goldbach's Conjecture【素数判断】【水题】
- POJ 2262 Goldbach's Conjecture (求解素数的一般筛和线性筛)
- poj2262 Goldbach's Conjecture 素数的欧拉筛法
- POJ2262 Goldbach's Conjecture(素数问题)
- HDOJ 1397:Goldbach's Conjecture 哈希加筛选法求素数
- 【原】 POJ 2262 Goldbach's Conjecture 筛素数 解题报告
- 【数论】poj2262 Goldbach's Conjecture
- POJ 2262 Goldbach's Conjecture 素数筛选
- POJ 2262 Goldbach's Conjecture(素数相关)
- POJ2262 ZOJ1951 UVa543 Goldbach's Conjecture【哥德巴赫猜想】
- POJ 2262 Goldbach's Conjecture 素数打表
- POJ Goldbach's Conjecture(素数筛~欧拉筛法)
- HDU1397_Goldbach's Conjecture_素数筛选法
- Goldbach's Conjecture(数论--素数判断)
- zoj 1951 Goldbach's Conjecture(素数筛选继续水)
- POJ2909_Goldbach's Conjecture【素数判断】【水题】
- poj 2262 Goldbach's Conjecture 素数 水题
- POJ 2739 Sum of Consecutive Prime Numbers 暴力枚举+素数判断
- POJ 2739 Sum of Consecutive Prime Numbers( *【素数存表】+暴力枚举 )
- SDUT 3002-素数间隙(素数筛+暴力)