Veuillez préparer le fichier prime.txt sans contenu séparément.
prime.py
import math
num = 3 #Numéro pour commencer l'exploration
prime = [2] #Ajouter 2 au nombre premier
prm_cnt = 1 #Une variable qui compte les nombres premiers trouvés
pfile = 'prime.txt' #Fichier pour écrire le nombre premier trouvé
####################################################################
#Function Description:Dernière fonction de lecture de fichier de liste de nombres premiers exécutée
####################################################################
def load_prime():
global prm_cnt
global prime
global num
file_data = open(pfile, "r")#Lecture de fichier
print("!! load start !!\n")
for line in file_data:
prime.append(int(line))
num = int(line)
print("!! load end !!\n")
file_data.close()
prm_cnt = len(prime)
####################################################################
#Function Description:Une fonction qui définit un indicateur lorsqu'un nombre premier est trouvé
#Arg1:Nombre pour juger s'il s'agit d'un nombre premier Diviser par les nombres premiers apparus jusqu'à présent et vérifier s'il y a un reste
#Arg2:Nombre de nombres premiers découverts jusqu'à présent
#Arg3:La liste des nombres premiers peut être référencée de l'extérieur de la fonction
#Return:Jugement des nombres premiers DRAPEAU
####################################################################
def prime_func(num ,prm_lp, prm ):
cnt = 0
ret = "FALSE"
for j in range(0,prm_lp):
rem = num % prm[j]
if rem == 0:
cnt = 1#FALSE
break
if cnt == 0:
prm_lp = prm_lp + 1#Comptez les nouveaux nombres premiers et augmentez le nombre de divisions pour trouver le prochain nombre premier de 1.
prm.append(num)#Ajouter un nouveau nombre premier à la liste
ret = "TRUE"
return ret
####################################################################
#Function Description:Recherche par nombre premier
####################################################################
def calc_prime():
global prime
global prm_cnt
global num
pfile = 'prime.txt'
E_OK = "TRUE"
out_file = open(pfile,'a')
while 1 :
num = num + 2 #Recherche par 2 car il n'y a que des nombres premiers dans les nombres impairs
ret = prime_func(
num, #Nombre pour juger s'il s'agit d'un nombre premier
prm_cnt, #Nombre de nombres premiers
prime #Liste des nombres premiers
)
if E_OK == ret: #Découverte des nombres premiers
print(str(prime[len(prime)-1]) )
prm_cnt = prm_cnt + 1
out_file.write(str(num) + "\n")
out_file.close()
####################################################################
#Function Description:fonction principale
####################################################################
def Main():
load_prime()
calc_prime()
if __name__=="__main__":
Main()