cafelier のSRM参加記録です。コンテスト中に考えてたことを執拗に全部書き残すとどうなるだろうかという試み本番中にこういうコードが書きたかったなあ、という後で書いた反省コードを書き残す試み
スパムが来たのでしばらくコメント欄をはてなユーザ限定にしています、すみません、
あとで | |
class SieveOfEratosthenes { public: vector<int> eratos(int M) { vector<bool> isComposite(M+1); vector<int> ps; for(int p=2; p<=M; ++p) if( !isComposite[p] ) { ps.push_back(p); for(LL q=LL(p)*p; q<=M; q+=p) isComposite[q] = true; } return ps; } int minFactor(int N, const vector<int>& ps) { for(int i=0; i<ps.size(); ++i) if( N % ps[i] == 0 ) return ps[i]; return INT_MAX; } int lastScratch(int maxNum) { vector<int> ps = eratos(int(sqrt(double(maxNum)))); int P = ps.back(); int M = P*P; for(int Q=P+1; P*Q<=maxNum; ++Q) if( minFactor(Q,ps) >= P ) M = P*Q; return M; } };
presented by cafelier/k.inaba under