【AOJ 2150】Matsuzaki Number
問題
Matsuzaki Number | Aizu Online Judge
ソースコード
#include <iostream> #include <cstring> #include <vector> #include <algorithm> using namespace std; #define N 4000001 #define rep(i,n) REP(i,0,n) #define REP(i,a,n) for(int i=a ; i < n ; i++) #define pb push_back int main(){ int n, p; bool prime[N]; vector<int> v1, v2; memset(prime, true, sizeof(prime)); for(int i = 2; i*i <= N ; i++){ if(prime[i]){ for(int j = 2*i ; j <= N ; j+=i){ prime[j] = false; } } } while(true){ cin >> n >> p; if(n==-1 && p ==-1) break; int index=0; v1.clear(); v2.clear(); int cnt=0; for(int i = n+1 ; cnt < p ; i++){ if(prime[i]){ v1.pb(i); cnt++; } } rep(i,p){ REP(j,i,p){ v2.pb(v1[i]+v1[j]); } } sort(v2.begin(), v2.end()); cout << v2[p-1] << endl; } }