Как вывести ближайшее простое число, меньшее заданного?
a=int(input())
for i in range(1,a):
if a % i == 0:
print(a)
как исправить
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
самый простой алгоритм такой (исправляю вашу ошибку):
a = int(input())
for i in range(a, 1, -1):
if is_prime(i):
print(i)
break
теперь только нужно написать функцию is_prime, которая проверяет, является ли число простым или нет, но это задача уже гораздо проще и вы ее осилите -
надо просто пройти по всем числам от 2 до n - 1 (ну или до int(sqrt(n) + 1), если хотите выиграть в скорости) и проверить делится ли n на числа без остатка - если хоть на одно делится - сразу выходить с False, а после цикла выйти с True