結果
問題 | No.2318 Phys Bone Maker |
ユーザー |
![]() |
提出日時 | 2024-08-31 13:03:52 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 2,325 ms / 3,000 ms |
コード長 | 659 bytes |
コンパイル時間 | 709 ms |
コンパイル使用メモリ | 82,208 KB |
実行使用メモリ | 77,668 KB |
最終ジャッジ日時 | 2024-08-31 13:04:13 |
合計ジャッジ時間 | 20,469 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 45 |
ソースコード
N=int(input()) M=998244353 p1=[] v=N i=1 while i*i<=v: if v%i==0: p1+=[i] if (v//i)>i: p1+=[v//i] i+=1 p1.sort() d1={v:i for i,v in enumerate(p1)} p2=[] v=N i=2 while i*i<=v: if v%i==0: p2+=[i] while v%i==0: v//=i i+=1 if v>1: p2+=[v] n=len(p1) q=[0]*n q[0]=1 for i in range(n-1): for j in range(i+1,n): if p1[j]%p1[i]==0: a=1 for p in p2: v=p1[i] ci=0 while v%p==0: v//=p ci+=1 v=p1[j] cj=0 while v%p==0: v//=p cj+=1 if cj<=ci: a*=ci+1 a%=M q[j]+=q[i]*a q[j]%=M print(q[-1])