forked from karan/Projects
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprime_factorization.py
64 lines (55 loc) · 1.62 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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# Created on 28/05/2014
# Author: Tartuffe
def prime_factors(number):
list=[]
while number % 2 == 0:
number = number / 2
list.append(2)
while number % 3 == 0:
number = number / 3
list.append(3)
while number % 5 == 0:
number = number / 5
list.append(5)
while number % 7 == 0:
number = number / 7
list.append(7)
# maybe prime factor is prime number, so it couldn't be passed through loops above
if number > 1: list.append(number)
if len(list)==1:
print number, " is prim number"
else:
for fact in list:
print fact, " ",
if __name__ == '__main__':
number = raw_input("Please, input your number: ")
# Capturing input error, input variable must be a number after converting with int(number)
# (This block is not necessary for problem solving)
isNumber=False
while not isNumber:
try:
number=int(number)
isNumber=True
except ValueError:
number = raw_input("Please, you must input a number: ")
isNumber=False
#
list=[]
while number % 2 == 0:
number = number / 2
list.append(2)
while number % 3 == 0:
number = number / 3
list.append(3)
while number % 5 == 0:
number = number / 5
list.append(5)
while number % 7 == 0:
number = number / 7
list.append(7)
if number > 1: list.append(number)
if len(list)==0:
print number, " is prim number"
else:
for fact in list:
print fact, " ",