結果
問題 |
No.575 n! / m / m / m...
|
ユーザー |
![]() |
提出日時 | 2025-03-26 04:33:09 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 237 ms / 2,000 ms |
コード長 | 747 bytes |
コンパイル時間 | 269 ms |
コンパイル使用メモリ | 12,416 KB |
実行使用メモリ | 10,496 KB |
最終ジャッジ日時 | 2025-03-26 04:33:16 |
合計ジャッジ時間 | 7,010 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 23 |
ソースコード
n,m=map(int,input().split()) F=[] x=m for i in range(2,10**6): if x%i==0: sc=0 while x%i==0: x//=i sc+=1 F.append((i,sc)) if x!=1: F.append((x,1)) A=[] for f,sc in F: s=0 now=n while now!=0: now//=f s+=now A.append(s//sc) a=min(A) if n<=100: ANS=1 for i in range(1,n+1): ANS*=i ANS//=(m**a) #print(ANS) S=str(ANS) S=S[0]+"."+S[1:] print(S,end="") print("e",end="") print(len(S)-2) else: from math import pi,e,sqrt,log10 ANS=log10(2*pi*n)/2+n*log10(n/e)+log10(1+1/(12*n)) - a* log10(m) u=int(ANS) ANS-=u S=10**ANS print(S,end="") print("e",end="") print(u)