def get_lcm(l): factor_lists = [get_prime_factors(e) for e in l] factors = get_factor_set(factor_lists) d = defaultdict(int) for factor in factors: for fl in factor_lists: if fl.count(factor) > d[factor]: d[factor] = fl.count(factor) return product([k**v for k,v in d.items()])
def main(): target = 4 candidate = 0 consecutive_successes = 0 while consecutive_successes < target: candidate += 1 if len(set(get_prime_factors(candidate))) == target: consecutive_successes += 1 else: consecutive_successes = 0 print(candidate - 3)
def get_num_factors(n): # very slow but works ¯\_(ツ)_/¯ factors = get_prime_factors(n) num_facs = len(factors) for prim in factors: fac = prim * 2 while fac <= n**(1 / 2): if n % fac == 0 and fac not in factors: num_facs += 1 factors.append(fac) fac += prim return num_facs, factors
def run(): """ Solution: Brute force """ first, consec = 0, 0 n = 647 while consec < 4: factors = get_prime_factors(n) if len(factors) == 4: if consec == 0: first = n consec += 1 else: consec = 0 first = 0 n += 1 return first
def main(): print(get_prime_factors(600851475143)[-1])
def euler_totient(n): ret = n for p in set(get_prime_factors(n)): ret //= p ret *= p - 1 return ret
def divisors(n): prime_factors = get_prime_factors(n) s = set(prime_factors) l = [prime_factors.count(e) for e in s] lx = [e + 1 for e in l] return product(lx)
def count_factors(n): prime_factors = Counter(get_prime_factors(n)) total_factors = 1 for prime, multiplicity in prime_factors.items(): total_factors *= multiplicity + 1 return total_factors
def get_prime_factor_tuples(n): d = defaultdict(int) for e in get_prime_factors(n): d[e] += 1 return sorted(d.items(), key=lambda e: e[0])
from utils import get_prime_factors if __name__ == "__main__": print max(get_prime_factors(600851475143))
def solve(): number = 600851475143 primes = get_prime_factors(number) answer = max(primes) print(answer)
import numpy as np from utils import prime_numbers, get_prime_factors n = 600851475143 prime_list = prime_numbers(int(np.sqrt(n) + 1)) print(np.max(get_prime_factors(n, prime_list)))
def test_get_prime_factors(): assert utils.get_prime_factors(60) == [2, 2, 3, 5] assert utils.get_prime_factors(73) == [73] assert utils.get_prime_factors(1) == []