約数包除
code: a.py
C = 1 # Ci := 素因数がi個の数のリスト。ソートはされていない
for p in P: # Pは素数のリスト
if C-1:
C.append([])
for k in range(len(C) - 1)::-1:
for q in Ck:
if p * q >= lim: continue # 上限を超える数は含めない
Ck+1.append(p * q)
#包除原理