Galaretka , 13 znaczących znaków, wyzwanie postdatate języka
R µ ọḊ *@Ḋ ċ >2 µ Ðf
Wypróbuj online!
Wszystkie białe znaki tutaj są nieznaczne. Użyłem go, aby pokazać strukturę mojej odpowiedzi, jak zadaje pytanie.
Oto jak to działa:
R µ ọḊ *@Ḋ ċ >2 µ Ðf
R Ðf Find all numbers n from 1 to the input, such that:
µ µ (grouping marks, like {} in C)
Ḋ Ḋ Take the range from 2 to n
ọ Find the number of times each divides n
*@ Raise the range from 2 to n to these powers
ċ Count the number of times n appears
>2 and the result must be greater than 2
Na przykład, testując n = 256, sprawdzamy, ile razy każda z liczb od 2 do 256 dzieli się na 256. Jedyne liczby, które dzielą więcej niż jeden raz, to 2 (który dzieli 8 razy), 4 (który dzieli 4 razy), 8 (który dzieli dwa razy) i 16 (który dzieli dwa razy). Kiedy więc podnosimy liczbę podziałów do ustalonych tam mocy, otrzymujemy:
2⁸, 3, 4⁴, 5, 6, 7, 8², 9, 10, 11, 12, 13, 14, 15, 16², 17, ..., 255, 256
Daje to oryginalną wartość 256, liczbę razy równą sposobowi, że 256 jest mocą doskonałą, plus jeden (ostatni element daje 256, ponieważ 256 = 256¹). Więc jeśli widzimy 256 więcej niż dwa razy w tablicy (i robimy w tym przypadku; 8² to 64, ale wszystkie inne „interesujące” elementy dają 256), to musi być idealna moc.