Python - Primos

De Manuais Informática - IES San Clemente.
Ir a la navegación Ir a la búsqueda
#!/bin/python3

from os import remove
from os.path import exists, expanduser
from sys import argv
from time import time
from math import sqrt

def compruebaPrimo(num):
    esPrimo = True
    #El 0 y el 1 NO son primos
    if num == 0 or num == 1:
        esPrimo =False
    #Con llegar hasta la raíz cuadrada de num llega
    for n in range(2,int(sqrt(num))+1):
        # print(n)
        if num%n == 0:
            esPrimo = False
            break

    return esPrimo

inicio = time()
if len(argv) > 1:
    n=int(argv[1])
else:
    n=1000000

listaPrimos = []
for i in range(2,n+1):
    if compruebaPrimo(i):
        listaPrimos.append(i)

#Ya no es tiempo de CPU
homedir = expanduser("~")
#print(homedir)
archivo = homedir + '/primos.txt'
if exists(archivo):
    remove(archivo)
fw = open(archivo,"w")
for i in listaPrimos:
    fw.write(str(i)+'\n')
fw.close()

fin = time()
#print(listaPrimos)
print("Primos finalizado : " + str(fin-inicio))

exit()