Не выводит нужное число
При вводе 6 , выводит 3(нужно 7) код странный, я только учусь писать по заданию нужно найти,которая принимает в качестве аргумента натуральное число num и возвращает первое простое число большее числа num.
# объявление функции
def get_next_prime(num):
s, s1, s2 = [], [], []
count = 0
for i in range(num + 1, num + 10):
s.append(i)
for j in range(len(s)):
if (s[j] % 1 == 0) and (s[j] % s[j] == 0):
s1.append(s[j])
for j1 in range(len(s1)):
for j2 in range(1, j1):
if j1 % j2 == 0:
count += 1
if count == 2:
s2.append(j1)
return s2
# считываем данные
n = int(input())
# вызываем функцию
print(get_next_prime(n))
Ответы (1 шт):
Автор решения: n1tr0xs
→ Ссылка
- Создаем функцию проверки числа на простоту (можно использовать что-то проще, можно мудренее):
def is_prime(n):
if n%2==0:
return False
for i in range(3, int(n**.5)+1, 2):
if n%i==0:
return False
return True
- Перебираем все числа после
nи каждое проверяем, если простое - задача выполнена, иначе - перебираем дальше.
def get_next_prime(n):
k = n+1
while True:
if is_prime(k):
return k
k += 1
Или так:
def get_next_prime(n):
n += 1
while not is_prime(n):
n += 1
return n
- Вызываем
get_next_prime:
print(get_next_prime(int(input())))