Article épinglé

jeudi 16 mai 2019

Python et quête n°1 - nombres premiers entre 1 et 100 000 ;)

Article pour me faire gagner du temps en m'évitant de relancer le script de ma première quête. Voici le résultat des nombres premiers entre 1 et 100 000, et ça en fait quand même 9593!!!

Époustouflant, je suis d'ailleurs impressionné, l'IDE Thonny n'a pas planté...
Résultat du script https://ptroulet.blogspot.com/2019/05/python-et-quete-n1-trouver-les-nombres.html lancé à 17h45 ce soir avant le conseil de classe des BTSa TC et récupéré vers 20h15 à la fin du conseil.

[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61,
67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137,
139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211,
223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283,
293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379,
383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461,
...
...
99257, 99259, 99277, 99289, 99317, 99347, 99349, 99367, 99371, 99377,
99391, 99397, 99401, 99409, 99431, 99439, 99469, 99487, 99497, 99523,
99527, 99529, 99551, 99559, 99563, 99571, 99577, 99581, 99607, 99611,
99623, 99643, 99661, 99667, 99679, 99689, 99707, 99709, 99713, 99719,
99721, 99733, 99761, 99767, 99787, 99793, 99809, 99817, 99823, 99829,
99833, 99839, 99859, 99871, 99877, 99881, 99901, 99907, 99923, 99929,
99961, 99971, 99989, 99991]

Lien vers le fichier csv contenant les nombres premiers entre 1 et 100 000:



Script modifié permettant un export csv du résultat ;)

#quete des nombres premiers
#testez avec 100, puis 1000
#les enregitrements dans le csv se compilent à la suite.

borne =int(input("Recherche des nombres premiers entre 2 et ? \nSaisir la borne supérieure Nsup = "))

premier=[1]
j=1
while j<=borne:
    nbre=j
    i=1
    list=[]

    while i<=nbre:
        if nbre%i ==0:
           
            list.append(i)
            i=i+1
        else:
            i=i+1
  
    if len(list)==2:
        premier.append(nbre)
        
    
    j=j+1
print (premier)

# Export des nombres premiers dans un fichier nbpremier.csv avec séparateur ,
# 100 nombres premiers par lignes
import csv
with open('nbpremier.csv', 'a', newline='') as f:
    x=0
    col=100
    max=len(premier)
    ligne=int(max/col)+1
    
    
  
    writer = csv.writer(f)
    while x<ligne:
        writer.writerow(premier[x*col:(x+1)*col])
        x+=1

Aucun commentaire:

Enregistrer un commentaire

Tout commentaire nous engage ;)