結果

問題 No.473 和と積の和
コンテスト
ユーザー titia
提出日時 2026-07-16 00:15:13
言語 PyPy3
(7.3.17)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
AC  
実行時間 2,835 ms / 3,000 ms
+ 640µs
コード長 505 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 455 ms
コンパイル使用メモリ 95,852 KB
実行使用メモリ 146,860 KB
最終ジャッジ日時 2026-07-16 00:15:40
合計ジャッジ時間 24,612 ms
ジャッジサーバーID
(参考情報)
judge2_0 / judge1_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 43
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import sys
input = sys.stdin.readline

from collections import Counter

N,X=list(map(int,input().split()))
X+=1
L=[]

for x in range(1,10**5):
    if X%x==0:
        L.append(x)
        L.append(X//x)

L=sorted(set(L))

DP=Counter()
DP[1,X]=1

for i in range(N):
    NDP=Counter()

    for a,rest in DP:
        for ind in range(a,len(L)):
            if rest%L[ind]==0:
                NDP[ind,rest//L[ind]]+=DP[a,rest]

    DP=NDP
    
ANS=0
for a,b in DP:
    if b==1:
        ANS+=DP[a,b]

print(ANS)
0