Bu matematiksel bir bükülme ile düşündüğüm bir kod golf mücadelesi. Buradaki zorluk, kodun sonlandırılıp sonlandırılmayacağı açık bir soru olacak şekilde mümkün olan en kısa kodu yazmaktır. Ne demek istediğimin bir örneği, bir cevaplayıcıdan bu cs stackexchange sorusuna uyarlanan aşağıdaki python kod parçası olabilir .
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
Matematikçiler garip bir mükemmel sayının olmadığını varsayıyorlar, ancak hiçbir zaman kanıtlanmadı, bu yüzden bu kodun hiç bitmeyeceğini kimse bilmiyor. Diğer kod parçalarını (belki de Collatz ya da ikiz primler varsayımı gibi diğer açık sorunlara dayanarak) kısaltabilir ancak sonlandırıp sonlandırmayacağı bilinmiyor.
Düzenleme: Bazı insanlar iyi bir ek kural getirdiler - Sorunun çözümleri belirleyici olmalı. Her ne kadar ilginç olmasa da, nondeterminism kullanarak daha kısa çözümler bulabilirseniz. Bu durumda, kural, fesih olasılığının bilinmediği bir pasajı bulmak olacaktır.
n=3
while sum(k*(n%k<1)for k in range(1,n))-n:n+=2
.