Générateur de nombres premiers par Python

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()

Recommended Posts

Générateur de nombres premiers par Python
Premier nombre 2 en Python
[python] Mémorandum de génération aléatoire
Générateur principal infini en Python3
nombre premier
Résumé de la génération de nombres aléatoires par Numpy
Un programme qui détermine si un nombre entré en Python est un nombre premier
Projet Euler # 7 "1000 1er nombre premier" en Python
[Python] Programme d'achat
Dérivation de la distribution t multivariée et implémentation de la génération de nombres aléatoires par python
Classement des numéros de stock par balise Qiita avec python
Création arbitraire de nombres premiers de bits Code Python RSA
Juger s'il s'agit d'un nombre premier [Python]
Python> Trier par nombre et trier par alphabet> Utiliser trié ()
Jugement des nombres premiers par Python
Mémo de visualisation par Python
"My Graph Generation Application" par Python (PySide + PyQtGraph) Partie 2
Création d'un programme de génération d'images MNIST par DCGAN (tutoriel tensorflow)
Génération de chaînes aléatoires (Python)
07. Génération de déclaration par modèle
Réponse de Beamformer par python
Génération d'images JPEG en spécifiant la qualité avec Python + OpenCV
Nombre premier en Python
"My Graph Generation Application" par Python (PySide + PyQtGraph) Partie 1
Programme d'analyse des contraintes symétriques axiales par Python (élément carré) [édition révisée]
[Python] Un programme qui crée un tableau à deux dimensions en combinant des entiers
Reconnaissance vocale par Python MFCC
[Python 3] Décomposition des facteurs premiers en 14 lignes
API Web EXE par Python
Paramétrage par le configurateur python
Pin python géré par conda
Juger les nombres premiers avec python
Homebrew Python - Programme de recherche YouTube
Extraction de mots-clés par MeCab (python)
Séparez les nombres par 3 chiffres (python)
Modèle de commutation de Markov par Python
Implémentation de Fibonacci et des nombres premiers (python)
Traitement d'image par python (Pillow)
Python lancé par des programmeurs C
Jugement de la plateforme (OS) par Python
Trier par date en python
[Hikari-Python] Chapitre 07-02 Gestion des exceptions (exécution continue du programme par gestion des exceptions)
J'ai créé un programme de sortie de table de nombres premiers dans différentes langues
Un script qui renvoie 0, 1 attaché au premier Python prime