17 23
做了一通DFS、BFS休息会,刚好看到书上有关于素数的,做一下。
中文题目,不解释。
搜索从m/2开始搜索,小的放前面。
#include <iostream> #include <string.h> using namespace std; bool prim[100001]; /* // 素性测试O(n^0.5) bool is_prim(int n) { int i; for(i=2; i*i<=n; ++i) if(n%i==0) return false; return n!=1; } */ // 埃氏筛法 void make_prim(int n) { memset(prim,0,sizeof(prim)); int i,j; prim[0]=prim[1]=1; for(i=2;i<=n;++i) { if(prim[i]) continue; for(j=i+i;j<=n;j+=i) prim[j]=1; } } int main() { int m,a,b; make_prim(10000); while(cin>>m) { for(a=m/2;a<m;--a) { b=m-a; if(!prim[a] && !prim[b]) break; } cout<<a<<" "<<b<<endl; } return 0; }
ACM-简单题之寻找素数对——hdu1262,布布扣,bubuko.com
原文:http://blog.csdn.net/lttree/article/details/23293137