結果
問題 | No.2379 Burnside's Theorem |
ユーザー |
![]() |
提出日時 | 2023-07-20 16:55:08 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 20 ms / 2,000 ms |
コード長 | 793 bytes |
コンパイル時間 | 2,287 ms |
コンパイル使用メモリ | 200,852 KB |
最終ジャッジ日時 | 2025-02-15 15:54:33 |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 20 |
ソースコード
#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; }