結果
問題 | No.2379 Burnside's Theorem |
ユーザー |
![]() |
提出日時 | 2023-07-15 01:49:14 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 9 ms / 2,000 ms |
コード長 | 840 bytes |
コンパイル時間 | 1,740 ms |
コンパイル使用メモリ | 169,748 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-09-16 10:28:45 |
合計ジャッジ時間 | 2,526 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 20 |
ソースコード
#include <bits/stdc++.h> using namespace std; #define ll long long #define rep(i, a, n) for (int i = (int)(a); i < (int)(n); i++) #define rrep(i, n, a) for (int i = (int)(n); i >= (int)(a); i--) vector<int> primes; bool f[1000001] = {}; void sieve(){ for(int i = 2; i < 1000001; i++){ if(!f[i]){ primes.push_back(i); int j = 2; while(j*i < 1000001){ f[j*i] = true; j++; } } } } void solve(){ ll n; cin >> n; int cnt = 0; sieve(); for(int x : primes){ if(n % x == 0){ cnt++; while(n%x==0) n /= x; } if(n == 1) break; } if(n>1) cnt++; if(cnt >= 3){ cout << "No"; }else { cout << "Yes"; } } int main(){ solve(); return 0; }