Skip to content

Instantly share code, notes, and snippets.

@igorvanloo
Last active November 18, 2023 04:18
Show Gist options
  • Save igorvanloo/094de56c55929e80a188e67bbb4f7d70 to your computer and use it in GitHub Desktop.
Save igorvanloo/094de56c55929e80a188e67bbb4f7d70 to your computer and use it in GitHub Desktop.
p853 multiples generator
def gen_multiples(primes, pivalues, multiplicities, limit):
#Generates all multiples of given primes up to a cetain multiplicity
#Extra condition to precalculate pi(n)
p, vpi = 1, 1
multiples = []
for i in range(multiplicities[0] + 1):
if p > 1:
multiples.append((p, vpi))
if len(primes) > 1:
for (x, xpi) in gen_multiples(primes[1:], pivalues[1:], multiplicities[1:], limit//p):
if p*x < limit:
multiples.append((p*x, lcm(vpi, xpi)))
if i == 0:
p *= primes[0]
vpi *= pivalues[0]
else:
p *= primes[0]
vpi *= primes[0]
return multiples
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment