mirror of
https://github.com/TheAlgorithms/Python.git
synced 2025-02-07 01:50:55 +00:00
* Update strassen_matrix_multiplication.py * Update matrix_operation.py * Update enigma_machine2.py * Update enigma_machine.py * Update enigma_machine2.py * Update rod_cutting.py * Update external_sort.py * Update sol1.py * Update hill_cipher.py * Update prime_numbers.py * Update integration_by_simpson_approx.py
30 lines
676 B
Python
30 lines
676 B
Python
#!/usr/bin/env python3
|
|
"""
|
|
module to operations with prime numbers
|
|
"""
|
|
|
|
|
|
def check_prime(number):
|
|
"""
|
|
it's not the best solution
|
|
"""
|
|
special_non_primes = [0, 1, 2]
|
|
if number in special_non_primes[:2]:
|
|
return 2
|
|
elif number == special_non_primes[-1]:
|
|
return 3
|
|
|
|
return all(number % i for i in range(2, number))
|
|
|
|
|
|
def next_prime(value, factor=1, **kwargs):
|
|
value = factor * value
|
|
first_value_val = value
|
|
|
|
while not check_prime(value):
|
|
value += 1 if not ("desc" in kwargs.keys() and kwargs["desc"] is True) else -1
|
|
|
|
if value == first_value_val:
|
|
return next_prime(value + 1, **kwargs)
|
|
return value
|