La meilleure facon de consolider les notions est de pratiquer. Ces exercices travaillent fonctions, boucles et conditions avec un probleme classique: trouver des nombres premiers dans un intervalle.
Executer le programme
Enregistrez le code dans un fichier premiers.py et lancez-le depuis le terminal avec:
python premiers.py
Fonction pour verifier si un nombre est premier
Un nombre est premier s’il n’est divisible que par 1 et par lui-meme. La fonction parcourt les diviseurs possibles:
def es_primo(num):
if num == 1:
return False
for i in range(2, num):
if num % i == 0:
return False
return True
Boucle pour chercher des nombres premiers dans un intervalle
On utilise une boucle for avec range(inicio, final + 1) pour parcourir tous les nombres:
def busca_numeros_primos(num_inicio, num_final):
for num in range(num_inicio, num_final + 1):
if es_primo(num):
print(num)
total_numeros_primos += 1
Mesurer le temps d’execution
Le module timeit permet de mesurer le temps que met le programme:
import timeit
inicio_tiempo = timeit.default_timer()
# ... code a mesurer ...
fin_tiempo = timeit.default_timer()
print(fin_tiempo - inicio_tiempo, "secondes")
Version avec threading
Pour accelerer, on peut couper l’intervalle en deux et le traiter en parallele avec threading.Thread:
num_mitad = int(((num_final - num_inicio) / 2) + num_inicio)
hilo = threading.Thread(target=consulta_primos, args=(num_inicio, num_mitad))
hilo.start()
hilo.join()
