結果
問題 |
No.500 階乗電卓
|
ユーザー |
![]() |
提出日時 | 2025-06-12 21:30:28 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 892 bytes |
コンパイル時間 | 208 ms |
コンパイル使用メモリ | 82,224 KB |
実行使用メモリ | 53,504 KB |
最終ジャッジ日時 | 2025-06-12 21:31:07 |
合計ジャッジ時間 | 1,813 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 18 WA * 2 |
ソースコード
def compute_trailing_zeros(n): count = 0 while n >= 5: n //= 5 count += n return count def main(): import sys MOD = 10**12 N = int(sys.stdin.readline()) z = compute_trailing_zeros(N) if z >= 12: print("000000000000") return product = 1 count_2 = 0 count_5 = 0 for i in range(1, N+1): num = i while num % 2 == 0: num //= 2 count_2 += 1 while num % 5 == 0: num //= 5 count_5 += 1 product = (product * num) % MOD excess_2 = count_2 - count_5 pow_2 = pow(2, excess_2, MOD) product = (product * pow_2) % MOD pow_10_z = pow(10, z, MOD) result = (product * pow_10_z) % MOD if result == 0: print("000000000000") else: print(result) if __name__ == "__main__": main()