Как вывести ближайшее простое число, меньшее заданного?

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

→ Ссылка