結果

問題 No.2318 Phys Bone Maker
ユーザー sasa8uyauya
提出日時 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
権限があれば一括ダウンロードができます

ソースコード

diff #

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])
0