Salut,
J'ouvre une boite de Pandore.
Cette conversation prolongeant la conversation concernant les nombres premiers jumeaux, je demande à ChatGPT de créer un crible ... d'Euclide(1) en Python
Cliquez pour afficher
User
Pourrais-tu en Python écrire un crible d'Euclide qui va Jusqu'à N et la fonction is_prime qui l'exploite
ChatGPT
Bien sûr! Voici une implémentation du crible d'Ératosthène en Python jusqu'à un nombre N donné, ainsi qu'une fonction is_prime pour vérifier si un nombre est premier en utilisant ce crible :
python
Le crible d'Ératosthène est une méthode efficace pour trouver tous les nombres premiers jusqu'à un certain nombre N donné. La fonction is_prime utilise le crible pour vérifier si un nombre spécifique est premier.Code:def sieve_of_eratosthenes(N): # Créer une liste de booléens pour marquer les nombres premiers (True) et non premiers (False) primes = [True] * (N + 1) primes[0], primes[1] = False, False # 0 et 1 ne sont pas premiers p = 2 while p * p <= N: if primes[p]: # Marquer comme non premier tous les multiples de p à partir de p^2 for i in range(p * p, N + 1, p): primes[i] = False p += 1 # Retourner la liste des nombres premiers jusqu'à N return [num for num, is_prime in enumerate(primes) if is_prime] def is_prime(num): # Utiliser le crible d'Ératosthène pour vérifier si le nombre est premier if num < 2: return False primes_list = sieve_of_eratosthenes(num) return num in primes_list # Test du crible d'Ératosthène pour trouver tous les nombres premiers jusqu'à N=30 N = 30 primes_list = sieve_of_eratosthenes(N) print("Nombres premiers jusqu'à", N, ":", primes_list) # Tester la fonction is_prime num_to_check = 17 if is_prime(num_to_check): print(num_to_check, "est un nombre premier.") else: print(num_to_check, "n'est pas un nombre premier.")
Vous pouvez tester le code en ligne ici : https://onlinegdb.com/1hrvoGhuF
User
Peux tu écrire une fonction qui liste les nombres premiers jumeaux grâce à ce crible
ChatGPT
Bien sûr! Les nombres premiers jumeaux sont une paire de nombres premiers dont la différence est égale à 2. Voici une fonction en Python qui utilise le crible d'Ératosthène pour trouver les nombres premiers jumeaux jusqu'à un nombre N donné :
python
Vous pouvez tester le code en ligne ici : https://onlinegdb.com/AenGM67U2Code:def sieve_of_eratosthenes(N): # Créer une liste de booléens pour marquer les nombres premiers (True) et non premiers (False) primes = [True] * (N + 1) primes[0], primes[1] = False, False # 0 et 1 ne sont pas premiers p = 2 while p * p <= N: if primes[p]: # Marquer comme non premier tous les multiples de p à partir de p^2 for i in range(p * p, N + 1, p): primes[i] = False p += 1 # Retourner la liste des nombres premiers jusqu'à N return [num for num, is_prime in enumerate(primes) if is_prime] def find_twin_primes(N): primes_list = sieve_of_eratosthenes(N) twin_primes = [] for i in range(len(primes_list) - 1): if primes_list[i + 1] - primes_list[i] == 2: twin_primes.append((primes_list[i], primes_list[i + 1])) return twin_primes # Trouver les nombres premiers jumeaux jusqu'à N=50 N = 50 twin_primes_list = find_twin_primes(N) print("Nombres premiers jumeaux jusqu'à", N, ":", twin_primes_list)
La conversation avec GPT a duré 5 minutes et je compose ce msg depuis ?30 =minutes ... au moins.
Feu !
Biname
(1) je commençais fort avec Euclide, j'y croyais vraiment
-----