An implementation of 'Sieve of Eratosthenes' for rust language practice.
cargo install rust-eratos
rust-eratos 11
rust
fn is_prime_number(n: u32) -> bool
rust
fn get_prime_number_count_below(n: u32) -> usize
rust
fn get_largest_prime_number_below(n: u32) -> u32
rust
fn get_prime_numbers_below(n: u32) -> Vec<u32>
rust
fn parse_args(args: &[String]) -> Result<u32, &'static str>
```
rust-eratos 13
13 is a prime number. There are 5 prime numbers less than 13, and the largest number is 11. Prime numbers less than 13. [2, 3, 5, 7, 11] ```
```python
import sys
def isprimenumber(n): if n < 2: return False
for i in range(2, int(n ** 0.5) + 1): # (n ** 0.5) == (math.sqrt(n))
if n % i == 0:
return False
return True
def getprimenumbercountbelow(n): if n < 3: return 0
count = 0
for i in range(2, n):
if is_prime_number(i):
count += 1
return count
def getlargestprimenumberbelow(n): for i in reversed(range(2, n)): if isprimenumber(i): return i
return 0
def getprimenumbers_below(n): # sieve = [0, 0] + [i for i in range(2, n)] sieve = [0, 0] for i in range(2, n): sieve.append(i)
for i in range(2, int(len(sieve) ** 0.5) + 1):
if sieve[i] <= 0:
continue
index = i * i
while index < len(sieve):
sieve[index] = 0
index += i
primes = []
for i in range(2, len(sieve)):
if sieve[i] > 0:
primes.append(i)
return primes
# return [i for i in range(2, len(sieve)) if sieve[i] > 0]
def main(n): print(f"{n} is a prime number.") print(f"There are {getprimenumbercountbelow(n)} prime numbers less than {n}," f" and the largest number is {getlargestprimenumberbelow(n)}") print(f"Prime numbers less than {n}") print(getprimenumbers_below(n))
if name == "main": main(int(sys.argv[1]))
```