結果
問題 | No.1659 Product of Divisors |
ユーザー |
|
提出日時 | 2021-09-08 10:39:59 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 137 ms / 2,000 ms |
コード長 | 740 bytes |
コンパイル時間 | 262 ms |
コンパイル使用メモリ | 82,304 KB |
実行使用メモリ | 82,048 KB |
最終ジャッジ日時 | 2024-12-25 13:37:29 |
合計ジャッジ時間 | 4,783 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 23 |
ソースコード
n=10**6 isprime=[True]*(n+1) #isprime[i]はiが素数かどうか isprime[0]=False isprime[1]=False for p in range(2,n+1): if isprime[p]: for q in range(2*p,n+1,p): isprime[q]=False P=[i for i in range(10**6) if isprime[i]] def extgcd(a,b): if b: d,y,x=extgcd(b,a%b) y-=(a//b)*x return d,x,y return a,1,0 def modinv(a,mod): return extgcd(a,mod)[1] N,K=map(int,input().split()) mod=10**9+7 divs=[] for p in P: exp=0 while N%p==0: exp+=1 N//=p if exp: divs.append(exp) if N>1: divs.append(1) ans=1 for div in divs: res=0 for n in range(div+1): c=1 for i in range(1,n+1): c=c*(n+K-i)%mod*modinv(i,mod)%mod # print(n,c) res+=c res%=mod ans=ans*res%mod print(ans)