結果

問題 No.3127 Multiple of Twin Prime
ユーザー テナガザル
提出日時 2025-04-25 21:40:19
言語 C++23
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 555 ms / 2,500 ms
コード長 705 bytes
コンパイル時間 1,190 ms
コンパイル使用メモリ 101,504 KB
実行使用メモリ 42,980 KB
最終ジャッジ日時 2025-04-25 21:40:31
合計ジャッジ時間 8,292 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 12
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
    int siz = 1e7;
    vector<int> isp(siz + 1);
    isp[0] = isp[1] = 1;
    for (int i = 2; i <= siz; ++i)
    {
        if (isp[i]) continue;
        for (int j = 2; i * j <= siz; ++j) isp[i * j] = 1;
    }
    vector<long long> v;
    for (int i = 2; i < siz - 1; ++i)
    {
        if (isp[i] | isp[i + 2]) continue;
        v.push_back((long long)i * (i + 2));
    }
    int t;
    cin >> t;
    while (t--)
    {
        long long n;
        cin >> n;
        auto itr = upper_bound(v.begin(), v.end(), n);
        if (itr == v.begin()) cout << -1 << endl;
        else cout << *(--itr) << endl;
    }
}
0