Next Prime [ Python 3 ]
Напишите функцию get_next_prime(num)
, которая принимает в качестве аргумента натуральное число num
и возвращает первое простое число большее числа num
.
Примечание 1. Используйте функцию is_prime()
из предыдущей задачи.
Примечание 2. Следующий программный код:
print(get_next_prime(6))
print(get_next_prime(7))
print(get_next_prime(14))
должен выводить:
7
11
17
# Возвращаем первое простое число
# большее числа num
def simple_num(number):
count = 0
for i in range(2, number + 1):
if number % i == 0:
count += 1
if count == 1:
return True
else:
return False
#
def next_simple(num):
count_list = list(range(num + 1, num * 2 + 1))
for i in range(len(count_list)):
if simple_num(count_list[i]) == True:
return count_list[i]
break
print(next_simple(int(input())))
Гуру решили так:
#
def get_next_prime(num):
if len([i for i in range(1, num + 1) if num % i == 0]) == 2:
return num
else:
return get_next_prime(num + 1)
#
n = int(input())
#
print(get_next_prime(n + 1))
Или так:
#
def is_prime(num):
return len([i for i in range(1, num+1) if num % i == 0]) == 2
def get_next_prime(num):
j = num+1
while is_prime(j) == False:
j += 1
return j
#
n = int(input())
#
print(get_next_prime(n))