J'ai fait du code qui calcule des nombres premiers (Rien de spécial je sais) et comme prévu il ralentit le plus grand le nombre, je sais qu'il est impossible de faire la même vitesse peu importe le nombre mais je suis sûr que je pourrais améliorer sa vitesse, je ne sais pas comment ...Comment puis-je accélérer ce code python?
import time
number = 1000000001
count = 0
start = time.time()
while number > 1000000000 and number < 10000000000000:
for i in range(1, round(number/2 + 1)):
if (number/i).is_integer():
count += 1
if count > 1:
break
if count < 2:
print(str(number) + ' prime')
number = number + 1
count = 0
end = time.time()
print(end - start)
Copie possible de [Le moyen le plus rapide de lister tous les nombres premiers sous N] (https://stackoverflow.com/questions/2068372/fastest-way-to-list-all-primes-below-n) – hallaksec
Tout d'abord Python est lent. Deuxièmement, il existe de nombreux algorithmes très avancés et difficiles à comprendre pour trouver des nombres premiers. Ce n'est pas un sujet pour 5min talk. – freakish
Utilisez un [tamis] (https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes) – khelwood