結果

問題 No.3127 Multiple of Twin Prime
ユーザー moaimomoai
提出日時 2025-04-25 22:44:32
言語 C++23
(gcc 13.3.0 + boost 1.87.0)
結果
TLE  
実行時間 -
コード長 1,056 bytes
コンパイル時間 5,187 ms
コンパイル使用メモリ 328,736 KB
実行使用メモリ 7,840 KB
最終ジャッジ日時 2025-04-25 22:44:43
合計ジャッジ時間 10,326 ms
ジャッジサーバーID
(参考情報)
judge1 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 1 TLE * 1 -- * 10
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
#include <stdio.h>
using namespace std;
long long int LMINF =  -1e18;
long long int modint = 1000000007;

const int N = pow(10,7);
vector<bool> isp(N+1, true);

void sieve(){
    isp[0] = false;
    isp[1] = false;
    for(long long int i = 2; pow(i,2)<=N; i++){
        if(isp[i]){
            for(long long int j = 2; i*j <= N; j++){
                isp[i*j] = false;
            }
        }
    }
}

int main() {
    int T;
    cin >> T;
    vector<long long int> Case(T);
    for(int i = 0; i < T; i++){
        cin >> Case[i];
    }
    sieve();
    set<long long int> S;
    long long int tmp;
    for(long long int i = 5; i < pow(10,7); i+=2){
        if(isp[i] && isp[i-2]){
            tmp = i * (i-2);
            S.insert(tmp);
        }
    }
    int minLimit = *begin(S);
    for(int i = 0; i < T; i++){
        if(Case[i] < minLimit){
            cout << -1 << endl;
        } else {
            auto Itr = upper_bound(S.begin(),S.end(),Case[i]);
            Itr--;
            cout << *Itr << endl;
        }
    }
}
0