-
Notifications
You must be signed in to change notification settings - Fork 0
/
Prime Factors.py
47 lines (38 loc) · 1020 Bytes
/
Prime Factors.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
import math
def isPrime(value):
for v in range(2, (value//2)+1):
if value % v == 0:
return False
else:
return True
def nextPrime(value):
init = value+1
while True:
if isPrime(init):
return init
init += 1
def main():
number = 0
primal = 2
primeFactors = []
try:
number = int(input('Input a number: '))
except:
print('It\'s not a number. Please enter with a number...')
exit()
number = math.fabs(number)
if number < 2:
print('There are no prime numbers for {}.'.format(int(number)))
exit()
while True:
if number % primal == 0:
primeFactors.append(primal)
if number / primal == 1:
break
number /= primal
else:
primal = nextPrime(primal)
print('Division by prime factors: ', primeFactors)
print('Prime factors: ', set(primeFactors))
if __name__ == '__main__':
main()