結果
問題 |
No.847 Divisors of Power
|
ユーザー |
|
提出日時 | 2024-10-25 08:42:21 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 594 bytes |
コンパイル時間 | 563 ms |
コンパイル使用メモリ | 82,848 KB |
実行使用メモリ | 82,832 KB |
最終ジャッジ日時 | 2024-10-25 08:42:26 |
合計ジャッジ時間 | 5,333 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | -- * 4 |
other | AC * 15 TLE * 1 -- * 10 |
ソースコード
from itertools import product N,K,M = map(int,input().split()) C = {} x = N for i in range(2,N): if i*i>N:break if x%i==0: C[i] = 0 while x%i==0: C[i] += 1 x = x//i if x==1:break if x>1: C[x] = 1 D = {p:[] for p in C} for p in C: for k in range(C[p]*K+1): if pow(p,k)>M:break D[p].append(pow(p,k)) A = [] for p in D: A.append(list(range(len(D[p])))) B = list(D.keys()) ans = 0 for z in product(*A): cnt = 1 for i in range(len(z)): cnt *= D[B[i]][z[i]] if cnt<=M: ans += 1 print(ans)