結果
問題 |
No.1659 Product of Divisors
|
ユーザー |
|
提出日時 | 2024-07-13 15:56:39 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 119 ms / 2,000 ms |
コード長 | 720 bytes |
コンパイル時間 | 242 ms |
コンパイル使用メモリ | 12,416 KB |
実行使用メモリ | 10,752 KB |
最終ジャッジ日時 | 2024-07-13 15:56:43 |
合計ジャッジ時間 | 2,829 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 23 |
ソースコード
def factorization(n: int) -> dict[int, int]: arr = dict() temp = n for i in range(2, int(-(-(n**0.5) // 1)) + 1): if temp % i == 0: cnt = 0 while temp % i == 0: cnt += 1 temp //= i arr[i] = cnt if temp != 1: arr[temp] = 1 if not arr and n != 1: arr[n] = 1 return arr N, K = map(int, input().split()) MOD = 10**9 + 7 def comb(n: int, r: int) -> int: res = 1 for i in range(r): res *= n - i res *= pow(i + 1, -1, MOD) res %= MOD return res ans = 1 fac = factorization(N) for ct in fac.values(): tmp = 1 ans *= comb(ct + K, ct) ans %= MOD print(ans)