Это проблема кода в гольф, о которой я подумал с математическим уклоном. Задача состоит в том, чтобы написать максимально короткий код, так что остается открытым вопрос, заканчивается ли код. Примером того, что я имею в виду, может быть следующий фрагмент кода на Python, адаптированный от anwser к этому вопросу cs stackexchange.
def is_perfect(n):
return sum(i for i in range(1, n) if n % i == 0) == n
n = 3
while not is_perfect(n):
n = n + 2
Математики предполагают, что не существует нечетных совершенных чисел, но это никогда не было доказано, поэтому никто не знает, закончится ли когда-нибудь этот фрагмент кода. Можете ли вы придумать другие фрагменты кода (возможно, опираясь на другие открытые проблемы, такие как гипотеза Коллатца или гипотеза двойных простых чисел), которые короче, но для которых неизвестно, заканчиваются ли они или нет?
Редактировать: Некоторые люди выдвинули хорошее дополнительное правило - решение вопроса должно быть детерминированным. Хотя было бы еще интереснее, если бы вы могли найти более короткие решения, используя недетерминизм. В этом случае правилом будет поиск фрагмента, для которого вероятность завершения неизвестна.
n=3
while sum(k*(n%k<1)for k in range(1,n))-n:n+=2
.