How to find prime numbers in a list in Python
If you know the range of integers (or at least the maximum value), then the most efficient strategy would be to pre-prepare a list of prime numbers; build a python set of those values, and then test each number in the list as to whether it is in the set of primes.
Other wise you need a prime testing function :
In python this would be :
- def is_prime(n) :
- """Return True if n is a prime"""
- if n <= 1:
- return False
- if n < 4 or n==5:
- return True
- if n > 5 and abs(n%6) !=1:
- return False
- for v in range(2, int(n ** 0.5)+1):
- if n % v == 0:
- return False
- else:
- return True
lines 3 to 10 are specific shortcuts for prime numbers :
- line 3–4 : We know that 1 is not a prime
- line 6–7 : Sappiamo che ogni intero minore di 4 è un primo (cioè 2 & 3)
- linea 9 - 10 : sappiamo che per tutti gli interi maggiori di 5 allora solo quegli interi che sono o 6n+1 o 6n-1 possono essere primi (dove n è un intero). Quindi possiamo restituire velocemente se il valore non è né 6n+1 né 6n-1.
Le linee da 12 a 16 testano se l'intero può essere diviso per qualsiasi altro intero da 2 a [math]\sqrt{n}[/math].
Le scorciatoie aiutano a migliorare la velocità di esecuzione di un fattore 3 circa poiché possono escludere così tanti numeri molto rapidamente - essenzialmente il ciclo nelle linee da 12 a 16 viene eseguito solo per 1/3 di tutti i numeri (quelli che sono o 6n+1 o 6n-1).
Edit bugs fixes as far as I can tell.
Articoli simili
- Cosa determina se una celebrità è nella A-List, B-List, C-List o D-List?
- How to write an algorithm in pseudocode that displays the sum of 5 numbers entered by the user and displays the smallest of the 5 numbers
- What are the best dubbed (English) completed animes, and where do I find them? I am seeking for a list and links.
- How to add a list to a Python dictionary