def solve(n): """ Count the maximal number of occurrences of every prime number that appears in the decomposition of each number until n """ p = PrimeDecomposition() decompositions = dict() for i in range(2, n + 1): decompositions[i] = p.decompose(i, [], 0) multiplicities = dict() for _, dec in decompositions.iteritems(): primes_occurrences = occurrences(dec) for prime, prime_occurrences in primes_occurrences.iteritems(): if prime in multiplicities: multiplicities[prime] = max( multiplicities[prime], prime_occurrences ) else: multiplicities[prime] = prime_occurrences solution = 1 for prime, multiplicity in multiplicities.iteritems(): solution *= pow(prime, multiplicity) return solution
def solve(n=10001): assert n >= 1 p = PrimeDecomposition() for i in range(n+10): p.get_one_more_prime() return p.primes_list[n - 1]
def sum_prime(n): p = PrimeDecomposition() p.get_primes_until(n + 10) return sum( [p for p in p.primes_list if p <= n] )