AOJ 0150 Twin Prime
方針
素数判定してから愚直に求める.
コード
int main() { fill(is_prime, is_prime + 10001, true); is_prime[0] = is_prime[1] = false; for(int i = 2; i < 10001; i++) if(is_prime[i]) for(int j = i * 2; j < 10001; j += i) is_prime[j] = false; int n; while(cin >> n, n) for(int i = n; i >= 0; i--) if(is_prime[i] && is_prime[i - 2]) { cout << i - 2 << ' ' << i << endl; break; } }