-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathisprime-single.py
36 lines (26 loc) · 1016 Bytes
/
isprime-single.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
import os
import time
import sys
number = int(sys.argv[1])
if number > 1000000:
print("Número muito grande para ser verificado. Saindo...")
sys.exit(0)
if number > 2 and number%2 == 0:
print("Todo número par maior que 2 não é primo!")
sys.exit(0)
def generate_list(begin,end):
return [x + 1 for x in range(begin,end)]
def is_multiple(a_number, other_number):
# Considerar número dividido por 1 ou por ele mesmo como não multiplo
if a_number == 1 or other_number == 1 or a_number == other_number:
return False
if (a_number > other_number):
return (a_number%other_number == 0)
else:
return (other_number%a_number == 0)
if __name__ == '__main__':
start = time.time()
divisors = [x for x in generate_list(1, number) if is_multiple(x, number) == True]
finish = time.time()
print("O número {} {} primo!".format(number, ("é" if len(divisors)==0 else "não é")))
print("Resposta em {} seg.".format(finish-start))