Пример #1
0
Файл: 5.py Проект: chirs/compsci
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()])
Пример #2
0
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
Пример #4
0
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
Пример #5
0
def main():
    print(get_prime_factors(600851475143)[-1])
Пример #6
0
def euler_totient(n):
    ret = n
    for p in set(get_prime_factors(n)):
        ret //= p
        ret *= p - 1
    return ret
Пример #7
0
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)
Пример #8
0
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
Пример #9
0
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])
Пример #10
0
Файл: 3.py Проект: chirs/compsci
from utils import get_prime_factors

if __name__ == "__main__":
    print max(get_prime_factors(600851475143))
Пример #11
0
def solve():
    number = 600851475143
    primes = get_prime_factors(number)
    answer = max(primes)
    print(answer)
Пример #12
0
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)))
Пример #13
0
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) == []