Код ничего не выводит, помогите пожалуйста исправить его

На 2 фото прикрепил какое задание мне нужно выполнить, а так же код, который я написал. Что в нем нужно исправить, чтобы он работал? Сейчас он не выводит вообще ничего.

for n in range (1,1000):
    s='3'+'5'*n
    while '25' in s or '355' in s or '555' in s:
        if '25' in s:
            s=s.replace('25','32',1)
        if '355' in s:
            s=s.replace('355','25',1)
        if '555' in s:
            s=s.replace('555','3',1)
    for x in s:
        sum=0
        sum+=int(x)
    if sum/(sum//2)==2:
        print(n)
        break

введите сюда описание изображения

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Глеб
  1. Последние два блока кода нужно сдвинуть на отступ вперед, в цикл. sum = 0 тоже.

  2. Метод определения простоты числа явно неверен. Замените его на нормальный.

Вот исправленный, дополненный и приведенный ко всем стандартам код:

# Функция проверки простоты числа
def is_prime(a):
    if a % 2 == 0:
        return a == 2
    d = 3
    while d * d <= a and a % d != 0:
        d += 2
    return d * d > a

# Основной код
s = '355555'
for _ in range (1, 1000):
    while any([i in s for i in ['25', '355', '555']]):
        if '25' in s:
            s = s.replace('25', '32', 1)
        if '355' in s:
            s = s.replace('355', '25', 1)
        if '555' in s:
            s = s.replace('555', '3', 1)
    summa = sum([int(i) for i in list(s)])
    if is_prime(summa): print(summa)    

sum использовать в качестве переменной — плохая идея, это имя встроенной функции python.

P.S. Почитайте PEP8. Стиль кода оставляет желать лучшего.

→ Ссылка