結果
問題 | No.1529 Constant Lcm |
ユーザー | trineutron |
提出日時 | 2021-06-04 20:41:04 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 24 ms / 3,000 ms |
コード長 | 853 bytes |
コンパイル時間 | 1,956 ms |
コンパイル使用メモリ | 196,108 KB |
最終ジャッジ日時 | 2025-01-21 22:23:08 |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 24 |
ソースコード
#include <bits/stdc++.h> using namespace std; constexpr int64_t mod = 998244353; int main() { int n; cin >> n; vector<bool> isprime(n, true); isprime.at(0) = false; isprime.at(1) = false; for (int64_t i = 2; i < n; i++) { if (not isprime.at(i)) { continue; } for (int64_t j = i * i; j < n; j += i) { isprime.at(j) = false; } } int64_t ans = 1; for (int64_t i = 2; i < n; i++) { if (not isprime.at(i)) { continue; } int64_t k = 1; while (i * k < n) { k *= i; } ans = k * ans % mod; k = n - k; while (k % i == 0) { ans = i * ans % mod; k /= i; } } cout << ans << endl; return 0; }