-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprime_factorization.py
47 lines (36 loc) · 1.19 KB
/
prime_factorization.py
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
39
40
41
42
43
44
45
46
47
def prime_factorization(limit):
if limit < 2:
return f"Prime factorization of {limit} is not defined"
result = "Here we go...\n"
limitclone = limit
prime_factors = []
trrry = 2
i = 2
k = 0
max_width = len(str(limit)) + 1 # Calculate the maximum width for alignment
while limit != 1:
while trrry <= limit:
i = 2
j = 0
while trrry > i:
if trrry % i == 0:
j = 1
if j == 1:
break
i += 1
if j == 0 and limit % trrry == 0:
result += f"{str(trrry).rjust(max_width)} | {str(limit).rjust(max_width)}\n"
prime_factors.append(trrry)
result += "---------\n"
limit = limit // trrry
trrry = 2
break
else:
trrry += 1
k += 1
if limit == 1:
result += f"{str(1).rjust(max_width)} | {''.rjust(max_width)}\n"
result += "---------\n\n\n\n\n\n"
prime_factors_str = " X ".join(map(str, prime_factors))
result += f"{prime_factors_str} = {limitclone} "
return result