Quick actions

cmd+k|ctrl+k

Navigation

Languages

Euler

Snippet info

Language

Python

Visibility

public

Author

phunh

Created

2020-05-09T08:58:49Z

Updated

2020-05-09T10:08:03Z

def is_prime(x):
    divisibles = [d for d in range(2, x//2+1) if x % d == 0]
    return len(divisibles) == 0
    
def diff(first, second):
    second = set(second)
    return [item for item in first if item not in second]
    
def sieve(x):
    r = range(2,x+1)
    i = 0
    while i < len(r):
        multiple = [m for m in r[i+1:] if m % r[i] == 0]
        r = diff(r, multiple)
        i += 1
    return r
    
def prime_factors(n):
    """Returns all the prime factors of a positive integer"""
    factors = []
    d = 2
    while n > 1:
        while n % d == 0:
            factors.append(d)
            n /= d
        d = d + 1
        if d*d > n:
            if n > 1: factors.append(int(n))
            break
    return factors
    
num = 600851475143
pfs = prime_factors(num)
print(pfs)
INFO