結果
問題 |
No.8123 Calculated N !
|
ユーザー |
|
提出日時 | 2025-04-01 02:41:14 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
MLE
|
実行時間 | - |
コード長 | 578 bytes |
コンパイル時間 | 3,219 ms |
コンパイル使用メモリ | 275,640 KB |
実行使用メモリ | 814,640 KB |
最終ジャッジ日時 | 2025-04-01 20:51:20 |
合計ジャッジ時間 | 5,667 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 MLE * 1 |
other | -- * 16 |
ソースコード
#include <bits/stdc++.h> using namespace std; #include <atcoder/modint> using mint = atcoder::modint1000000007; using ll = long long; using vl = vector<ll>; int main() { ll n; cin >> n; const int L = 6; const int MASK = (1 << L) - 1; vector<uint64_t> f((int)(n >> L) + 1); mint ans = 1; for (ll p = 2; p <= n; p += (p & 1) + 1) { if ((f[p >> L] >> (p & MASK)) & 1) continue; mint v = 1; for (ll x = n; x; ) v += x /= p; ans *= v; if (n / p / p) { for (ll i = p * p; i <= n; i += p) f[i >> L] |= 1ull << (i & MASK); } } cout << ans.val() << "\n"; }