結果
問題 | No.2191 一元二次式 mod 奇素数 |
ユーザー |
![]() |
提出日時 | 2022-11-27 20:46:03 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 411 bytes |
コンパイル時間 | 576 ms |
コンパイル使用メモリ | 68,260 KB |
最終ジャッジ日時 | 2025-02-09 01:38:35 |
ジャッジサーバーID (参考情報) |
judge4 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 27 |
ソースコード
#include <iostream>using namespace std;using ll = long long;ll modpow(ll a, ll n, ll mod) {ll ret = 1;for (n; n > 0; n >>= 1) {if (n & 1) {ret = ret * a % mod;}a = a * a % mod;}return ret;}int main(void) {ll p; cin >> p;ll K = (p - 1) / 2;ll a = p - (((K * K) * 4) + (K * 16) - 1) % p;string ans = (modpow(a, K, p) == 1) ? "YES" : "NO";cout << ans << endl;return 0;}