Давайте рассмотрим код, чтобы выявить возможные ошибки:
Функция
adc(n)выглядит правильной. Она проверяет, является ли числоnпростым, и возвращаетTrueилиFalseв зависимости от результата.В функции
cgf(num)я замечаю несколько проблем:- Переменная
numперезаписывается значением 0 сразу после передачи в функцию. - Условие
if len(str(num)) != 4иreturn 0могут привести к преждевременному завершению функции, не давая возможности продолжить обработку числа. - Неправильно выставлены отступы после блока
return 0иmax_prime = max(num). - Переменная
max_primeнеинициализирована корректно и не используется сразу после этой инициализации.
- Переменная
Похоже, что часть вашего кода для работы с вводом числа пропущена или не полностью реализована.
Чтобы исправить код, вам нужно:
- Удалить лишние строки, переоценивающие переменную
num. - Пересмотреть логику проверки длины числа.
- Инициализировать переменную
max_primeперед использованием.
Вы можете попробовать следующие изменения:
def cgf():
num = int(input("Введите четырёхзначное число: "))
if len(str(num)) != 4:
print("Число должно содержать 4 цифры.")
return
max_prime = 0
for i in range(1000, 10000):
if adc(i) and i > max_prime:
max_prime = i
print("Наибольшее простое число из всех возможных комбинаций:", max_prime)
cgf()
Этот исправленный код позволит вам ввести четырёхзначное число, а затем найти наибольшее простое число среди всех возможных комбинаций чисел.
Если у вас возникнут другие вопросы или понадобится дополнительная помощь, не стесняйтесь обращаться!