結果

問題 No.8123 Calculated N !
ユーザー KumaTachiRen
提出日時 2025-03-29 00:22:11
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 1,270 ms / 2,000 ms
コード長 455 bytes
コンパイル時間 361 ms
コンパイル使用メモリ 82,372 KB
実行使用メモリ 113,716 KB
最終ジャッジ日時 2025-04-01 20:50:32
合計ジャッジ時間 14,631 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 6
other AC * 16
権限があれば一括ダウンロードができます

ソースコード

diff #

import math

N = int(input())

sqrtN = math.isqrt(N)
Q = [N // i for i in range(1, sqrtN + 1)]
Q += list(range(Q[-1] - 1, 0, -1))
S = {i: i - 1 for i in Q}
for x in range(2, sqrtN + 1):
	if S[x] > S[x - 1]:
		for n in Q:
			if n < x * x: break
			S[n] -= S[n // x] - S[x - 1]

MOD = 1000000007
ans = 1
Q.reverse()
for i in range(1, len(Q)):
	v, x = 1, N
	while x > 0:
		x //= Q[i]
		v += x
	ans = ans * pow(v, S[Q[i]] - S[Q[i - 1]], MOD) % MOD

print(ans)
0