結果
問題 | No.1529 Constant Lcm |
ユーザー |
👑 ![]() |
提出日時 | 2021-04-29 01:59:17 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 853 ms / 3,000 ms |
コード長 | 1,318 bytes |
コンパイル時間 | 219 ms |
コンパイル使用メモリ | 82,328 KB |
実行使用メモリ | 97,756 KB |
最終ジャッジ日時 | 2024-10-10 10:18:06 |
合計ジャッジ時間 | 10,494 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 24 |
ソースコード
def Smallest_Prime_Factor(N):"""0,1,2,...,Nの最小の素因数のリスト(0,1については1にしている)"""if N==0:return [1]N=abs(N)L=list(range(N+1))L[0]=L[1]=1x=4while x<=N:L[x]=2x+=2x=9while x<=N:if L[x]==x:L[x]=3x+=6x=5Flag=0while x*x<=N:if L[x]==x:y=x*xwhile y<=N:if L[y]==y:L[y]=xy+=x<<1x+=2+2*FlagFlag^=1return Ldef Faster_Prime_Factorization(N,L):"""L:Smallest_Prime_Factors(N)で求めたリスト"""N=abs(N)D=[]while N>1:a=L[N]k=0while L[N]==a:k+=1N//=aD.append([a,k])return D#================================================from collections import defaultdictN=int(input())Mod=998244353D=defaultdict(int)P=Smallest_Prime_Factor(N)D=defaultdict(int)for i in range(1,(N+1)//2+1):A=defaultdict(int)for p,e in Faster_Prime_Factorization(i,P):A[p]+=efor p,e in Faster_Prime_Factorization(N-i,P):A[p]+=efor p in A:D[p]=max(D[p],A[p])X=1for p,e in D.items():X*=pow(p,e,Mod)X%=Modprint(X)