Home > Backend Development > Python Tutorial > What's the Fastest Way to Find All Prime Numbers Below a Given Integer N?

What's the Fastest Way to Find All Prime Numbers Below a Given Integer N?

Barbara Streisand
Release: 2024-12-23 09:45:10
Original
434 people have browsed it

What's the Fastest Way to Find All Prime Numbers Below a Given Integer N?

Fastest Way to List All Primes Below N

This code snippet gives a Python implementation of a method to efficiently generate a list of prime numbers up to a given integer.

    def get_primes(n):
        numbers = set(range(2, n + 1))
        primes = []
        while numbers:
            p = numbers.pop()
            primes.append(p)
            numbers.difference_update(set(range(p * p, n + 1, p)))
        return primes
Copy after login

Time Complexity:

The time complexity of the given code is O(n log log n), as it uses Sieve of Eratosthenes to calculate the prime numbers.

Implementation Notes:

  • The code initializes a set numbers containing all integers from 2 to n.
  • It iteratively removes non-prime numbers from numbers by marking as composite all multiples of the smallest number that has not yet been marked. These multiples are skipped by taking strides of the current prime number when updating numbers.
  • The code stops when numbers is empty, and the list of prime numbers found is returned in primes.

Potential Issues:

There is a potential issue with the implementation where it marks the starting number as a prime number when it should only consider numbers from 2 to n. This could be fixed by starting the loop from 2 instead of 0.

Usage:

To use this implementation, you can call the get_primes function and pass the desired upper bound as an argument. For example, to find all prime numbers up to 1000, you can use:

primes = get_primes(1000)
Copy after login

Output:

The output of the code will be a list of prime numbers up to the specified integer. For example, running the code with n = 1000 will produce the following output:

[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, ..., 977]

The above is the detailed content of What's the Fastest Way to Find All Prime Numbers Below a Given Integer N?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template