結果

問題 No.502 階乗を計算するだけ
ユーザー lam6er
提出日時 2025-04-15 20:52:50
言語 PyPy3
(7.3.15)
結果
TLE  
実行時間 -
コード長 464 bytes
コンパイル時間 572 ms
コンパイル使用メモリ 82,092 KB
実行使用メモリ 88,628 KB
最終ジャッジ日時 2025-04-15 20:54:36
合計ジャッジ時間 5,226 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 32 TLE * 1 -- * 19
権限があれば一括ダウンロードができます

ソースコード

diff #

import sys
sys.setrecursionlimit(1 << 25)

MOD = 10**9 + 7

def product(a, b):
    if a == b:
        return a % MOD
    mid = (a + b) // 2
    left = product(a, mid)
    right = product(mid + 1, b)
    return (left * right) % MOD

def factorial(n):
    if n >= MOD:
        return 0
    if n == 0 or n == 1:
        return 1
    m = n // 2
    left = factorial(m)
    right = product(m + 1, n)
    return (left * right) % MOD

n = int(input())
print(factorial(n))
0