class PrimeSequences {
public:
int getLargestGenerator(int N, int D) {
const int P = 10000000;
static bool prime[P];
fill(prime, prime + P, true);
prime[0] = prime[1] = false;
for (lli i = 2; i * i < (lli)P; ++i) {
if (!prime[i]) continue;
for (lli j = 2; i * j < (lli)P; ++j) {
prime[i * j] = false;
}
}
for (int i = N; 0 <= i; --i) {
if (!prime[i]) continue;
int cnt = 0;
int n = i;
while (prime[n]) {
n /= 2;
++cnt;
}
if (D <= cnt) return i;
}
return -1;
}
10/28/2011
SRM471 Div1 Easy
愚直に試す。
登録:
コメントの投稿
(
Atom
)
0 件のコメント :
コメントを投稿