結果
問題 |
No.500 階乗電卓
|
ユーザー |
![]() |
提出日時 | 2025-04-15 22:15:51 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 437 bytes |
コンパイル時間 | 242 ms |
コンパイル使用メモリ | 81,960 KB |
実行使用メモリ | 90,968 KB |
最終ジャッジ日時 | 2025-04-15 22:18:21 |
合計ジャッジ時間 | 6,703 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | -- * 3 |
other | TLE * 1 -- * 19 |
ソースコード
N = int(input()) MOD = 10**12 count2 = 0 count5 = 0 rest = 1 for i in range(1, N + 1): x = i while x % 2 == 0: x //= 2 count2 += 1 while x % 5 == 0: x //= 5 count5 += 1 rest = (rest * x) % MOD k = min(count2, count5) count2 -= k count5 -= k rest = rest * pow(2, count2, MOD) % MOD rest = rest * pow(5, count5, MOD) % MOD rest = rest * pow(10, k, MOD) % MOD print(f"{rest:012d}"[-12:])