結果
問題 | No.847 Divisors of Power |
ユーザー | brthyyjp |
提出日時 | 2020-06-07 18:44:41 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 153 ms / 2,000 ms |
コード長 | 776 bytes |
コンパイル時間 | 170 ms |
コンパイル使用メモリ | 81,964 KB |
実行使用メモリ | 83,880 KB |
最終ジャッジ日時 | 2024-12-23 20:17:13 |
合計ジャッジ時間 | 3,079 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 26 |
ソースコード
n, k, m = map(int, input().split()) if n == 1: print(1) exit() import math def factorize(n): d = {} temp = int(math.sqrt(n))+1 for i in range(2, temp): while n%i== 0: n //= i if i in d: d[i] += 1 else: d[i] = 1 if d == {}: d[n] = 1 else: if n in d: d[n] += 1 elif n != 1: d[n] =1 return d d = factorize(n) for k_ in d.keys(): d[k_] *= k L = list(d.items()) ans = [] def dfs(x, cnt): if cnt == len(d): ans.append(x) return k, v = L[cnt] for i in range(0, v+1): x *= k**i if x > m: break dfs(x, cnt+1) x //= k**i dfs(1, 0) print(len(ans))