結果
問題 |
No.1659 Product of Divisors
|
ユーザー |
![]() |
提出日時 | 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))