Задать вопрос
@Marty1337

Как расшифровать Exit code?

Решаю задачу с проекта Эйлера, столкнулся с такой проблемой:
Простые делители числа 13195 - это 5, 7, 13 и 29.
Каков самый большой делитель числа 600851475143, являющийся простым числом?
# Каков самый большой делитель числа 600851475143, являющийся простым числом?
import sys
sys.setrecursionlimit(2**20)
d = 2
n = 1241452
def main():

    ar = []

    def delit(d):
        global a
        global n
        if n % d == 0:
            ar.append(d)
            n = n/d
            if n == 1:
                print(ar)
            else:
                delit(2)
        else:
            a = simp_ind(d)


    def simp_ind(d):
        p = 2
        d +=1
        while d % p != 0:
            p += 1
        if p == d:
            delit(d)
        else: simp_ind(d)

    delit(d)

if __name__ == '__main__':
    main()

До числа n = 1241451 Задачу решает, если число больше, выдает ошибку:
Process finished with exit code -1073741571 (0xC00000FD)
  • Вопрос задан
  • 648 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Skillbox
    Python-разработчик
    10 месяцев
    Далее
  • ProductStar
    Профессия: Python-разработчик
    8 месяцев
    Далее
Решения вопроса 2
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Переполнение стека.
Ответ написан
Комментировать
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Вы поставили ограничение глубины стека таким большим, что память заканчивается задолго до достижения этого лимита, поэтому ваш процесс интерпретатора падает не показывая валидную ошибку.
Не стоит делать такой неадекватный лимит стека, тогда ваш интерпретатор упадёт с другой ошибкой - превышен лимит рекурсивных вызовов.
А уж эту проблему решать надо оптимизацией алгоритма. Ваш слишком жаден до стека.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Lord_of_Rings
@Lord_of_Rings Куратор тега Python
Northern Strider
Слишком большое число :)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы