結果
| 問題 |
No.1659 Product of Divisors
|
| コンテスト | |
| ユーザー |
puzneko
|
| 提出日時 | 2021-11-26 00:03:52 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 50 ms / 2,000 ms |
| コード長 | 1,004 bytes |
| コンパイル時間 | 164 ms |
| コンパイル使用メモリ | 82,688 KB |
| 実行使用メモリ | 58,240 KB |
| 最終ジャッジ日時 | 2024-06-28 16:43:42 |
| 合計ジャッジ時間 | 2,032 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 23 |
ソースコード
def powmod(n,pow,mod):
val = 1
while pow > 0:
if pow & 1:
val = (val * n) % mod
pow = pow >> 1
n = (n * n) % mod
return val
n, m = map(int, input().split())
p = 10**9+7
if n == 1:
print("{}".format(1))
exit()
val = 2
renzoku = 0
ans = 1
while val * val <= n:
if n % val == 0:
n = n // val
renzoku += 1
else:
if renzoku >= 1:
kari = 1
div = 1
for i in range(renzoku):
div = (div * (i+1)) % p
kari = (kari * (m+renzoku-i)) % p
kari = (kari * powmod(div,p-2,p)) % p
ans = (ans * kari) % p
renzoku = 0
val += 1
if n == val:
renzoku += 1
else:
ans = ans * (m+1) % p
if renzoku >= 1:
kari = 1
div = 1
for i in range(renzoku):
div = (div * (i+1)) % p
kari = (kari * (m+renzoku-i)) % p
kari = (kari * powmod(div,p-2,p)) % p
ans = (ans * kari) % p
print("{}".format(ans))
puzneko