結果
問題 | No.2379 Burnside's Theorem |
ユーザー |
|
提出日時 | 2023-09-08 09:18:37 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 7 ms / 2,000 ms |
コード長 | 804 bytes |
コンパイル時間 | 3,525 ms |
コンパイル使用メモリ | 252,464 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-06-26 02:23:32 |
合計ジャッジ時間 | 3,695 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 20 |
ソースコード
//mosyasu #include <bits/stdc++.h> using namespace std; using ll = long long; map<ll, ll> prime; void prime_factor(ll n){ ll m = n; if (n % 2 == 0){ while(n % 2 == 0){ prime[2]++; n /= 2; } } for (ll i = 3; i*i <= m; i+=2){ if (n % i == 0){ while(n % i == 0){ prime[i]++; n /= i; } } } if (n != 1){ prime[n]++; } } //X!が素数pで何回割り切れるか ll Legendre(ll X, ll p){ ll cnt=0, q=p; while(X/q > 0){ cnt += X/q; if (q <= X/p) q *= p; else break; } return cnt; } int main(){ ll N; cin >> N; prime_factor(N); cout << (prime.size() <= 2 ? "Yes" : "No") << endl; return 0; }