Le moyen le plus rapide de lister tous les nombres premiers inférieurs à N
En Python, il existe plusieurs algorithmes efficaces pour lister tous les nombres premiers inférieurs à un nombre N donné L'un des algorithmes les plus rapides est le tamis d'Atkin, qui utilise une combinaison d'opérations de tamisage et d'arithmétique pour identifier les nombres premiers.
Autres algorithmes efficaces
En plus du tamis d'Atkin, d'autres algorithmes efficaces pour lister les nombres premiers incluent :
Choisir le bon algorithme
Le meilleur algorithme pour votre application spécifique dépendra de la taille de N et la vitesse souhaitée. Pour de petites valeurs de N, le Tamis d'Eratosthène est un choix simple et efficace. Pour des valeurs de N plus grandes, le Sieve d'Atkin ou l'un des autres algorithmes mentionnés ci-dessus peuvent être plus adaptés.
Voici une implémentation Python du Sieve d'Atkin :
def sieve_of_atkin(limit): """Return a list of prime numbers up to the given limit.""" # Create a list of all integers up to the given limit. numbers = list(range(limit + 1)) # Mark 0 and 1 as non-prime. numbers[0] = numbers[1] = 0 # Iterate over all odd numbers up to the square root of the limit. for i in range(3, int(limit**0.5) + 1, 2): # If i is prime, mark all multiples of i as non-prime. if numbers[i]: for j in range(i * i, limit + 1, i * 2): numbers[j] = 0 # Return the list of prime numbers. return [number for number in numbers if number]
Considérations supplémentaires
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!