Next Prime [ Python 3 ]
0.0/5 оценка (0 голосов)

Напишите функцию 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))