aboutsummaryrefslogtreecommitdiff
path: root/challenge-023/paulo-custodio/python/ch-2.py
blob: 4438d1af8a401898831fe4e0d7d0abdc77521656 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/usr/bin/python3

# Challenge 023
#
# Task #2
# Create a script that prints Prime Decomposition of a given number. The prime
# decomposition of a number is defined as a list of prime numbers which when
# all multiplied together, are equal to that number. For example, the Prime
# decomposition of 228 is 2,2,3,19 as 228 = 2 * 2 * 3 * 19.

import sys
from primePy import primes

def next_prime(n):
    if n <= 1:
        return 2
    else:
        n += 1
        while not primes.check(n):
            n += 1
        return n

def prime_decomposition(n):
    if n<2:
        return [n]

    f = []
    p = 2
    while n>1:
        if n%p == 0:
            f.append(p)
            n //= p
        else:
            p = next_prime(p)
    return f

f = prime_decomposition(int(sys.argv[1]))
print(", ".join([str(x) for x in f]))