結果

問題 No.2379 Burnside's Theorem
ユーザー vjudge1
提出日時 2025-02-06 20:50:31
言語 C++17(gcc12)
(gcc 12.3.0 + boost 1.87.0)
結果
RE  
実行時間 -
コード長 1,121 bytes
コンパイル時間 8,904 ms
コンパイル使用メモリ 262,500 KB
実行使用メモリ 6,824 KB
最終ジャッジ日時 2025-02-06 20:50:50
合計ジャッジ時間 13,534 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample RE * 4
other RE * 20
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;
std::vector<long long int> sieve_of_eratosthenes(long long int limit)
{
    std::vector<bool> primes(limit + 1, true);
    primes[0] = primes[1] = false;

    for (int num = 2; num * num <= limit; ++num)
    {
        if (primes[num])
        {
            for (int multiple = num * num; multiple <= limit; multiple += num)
            {
                primes[multiple] = false;
            }
        }
    }

    std::vector<long long int> prime_numbers;
    for (int num = 2; num <= limit; ++num)
    {
        if (primes[num])
        {
            prime_numbers.push_back(num);
        }
    }
    return prime_numbers;
}
int main()
{

    long long int n = 0;
    cin >> n;
    vector<long long int> primesNo = sieve_of_eratosthenes(1000000000000);
    set<long long int> ans;
    for(auto i:primesNo){
        bool div = false;
        if(n%i==0){
            div = true;
            n /= i;
        }
        if(div){
            ans.insert(i);
        }
    }
    if(ans.size()>2){
        cout << "No" << endl;
    }
    else{
        cout << "Yes" << endl;
    }
}
0