Давайте разберем ваш код по очереди:
- Функция is_prime проверяет, является ли число простым. Ваша ошибка здесь связана с тем, что вы должны вернуть False, как только обнаруживается делитель, но ваш код сразу возвращает False после первой итерации. Правильнее было бы дойти до конца диапазона и только в конце вернуть True, если ни одного делителя не было найдено.
Исправленный вариант:
def is_prime(a):
for i in range(2, a):
if a % i == 0:
return False
return True
Следующая ошибка связана с вызовом функции contains(a, b) без ее определения. Для корректной работы это нужно исправить, также нужно убедиться, что ваша функция contains возвращает True или False в зависимости от условия.
В вашем коде также присутствует ошибка связанная с неправильной обработкой диапазона в цикле for. Вам нужно поправить диапазон на
range(2, i)в функции is_prime, чтобы правильно проверить простоту числа.
После внесения этих изменений ваш код будет работать корректно. Вам стоит попробовать исправленную версию и проверить результат. Надеюсь, это поможет вам разобраться в вашей ошибке!