Wprowadzenie
Weźmy numer 180
. Jest to interesująca liczba, ponieważ suma cyfr tej liczby jest równa:
1 + 8 + 0 = 9
I kwadratowa wersja tego numeru lub:
180² = 32400 > 3 + 2 + 4 + 0 + 0 = 9
Oba są 9 . Suma cyfr numeru pierwotnego i liczby kwadratowej są takie same. Oczywiście można to również znaleźć w OEIS: A058369 .
Zadanie
Biorąc pod uwagę nieujemną liczbę całkowitą n
, wypisz n
th liczbę dodatnią z tym warunkiem.
Przypadki testowe ( indeksowane od zera )
Input > Output
0 > 1
1 > 9
2 > 10
3 > 18
4 > 19
5 > 45
6 > 46
7 > 55
8 > 90
9 > 99
10 > 100
11 > 145
12 > 180
13 > 189
14 > 190
15 > 198
16 > 199
17 > 289
18 > 351
19 > 361
Dane wejściowe można również indeksować 1, jeśli bardziej Ci to odpowiada.
To jest golf golfowy , więc wygrywanie z najmniejszą ilością bajtów wygrywa!
^₂;?{ẹ+}ᵛ
Odpowiedzi:
Galaretka, 13 bajtów
Dane wejściowe są indeksowane 1. Wypróbuj online!
Jak to działa
źródło
Haskell, 54 bajty
Przykład użycia:
([x|x<-[1..],s x==s(x^2)]!!) 17
->289
.źródło
JavaScript (ES6),
76 7372 bajtySpędziłem 30 minut próbując uruchomić to, dopóki nie zdałem sobie sprawy, że wypisałem niewłaściwą zmienną: |
Jest to indeksowane na zero.
źródło
Perl 6,
4746 bajtówźródło
05AB1E ,
1098 bajtów1-indeksowany.
-1 bajt dzięki @Emigna poprzez usunięcie niejawnego
½
(wzrostcounter_variable
po każdej iteracji) na końcu-1 bajt dzięki @Grimy usunięcie duplikatu
SO
za pomocą‚1ö
Wypróbuj online.
Wyjaśnienie:
źródło
½
tutaj, ponieważ jest to domniemaneµNDn‚1öË
.1ö
jest jak,SO
ale wektoryzuje, co pozwala nam uniknąć powielania kodu.Mathematica, 64 bajty
Prosta anonimowa funkcja. Zero indeksowane.
źródło
Pyth, 15 lat
1 bajt dzięki DenkerAffe!
Wypróbuj tutaj lub uruchom pakiet testowy .
Korzysta z opcji 1-indeksowanej.
Naiwna implementacja, za pomocą
.f
której pobierane są pierwszen
liczby pasujące do danego warunku.źródło
h
jeśli używasz indeksowania 1, co jest wyraźnie dozwolone.MATL ,
2423 bajtyWykorzystuje dane wejściowe 1.
Wypróbuj online!
źródło
Julia,
7966 bajtówJest to funkcja rekurencyjna, która przyjmuje liczbę całkowitą i zwraca liczbę całkowitą. Wykorzystuje indeksowanie 1.
Przechowujemy kilka rzeczy jako argumenty funkcji:
n
: Dane wejściowex
: Licznik, ile liczb z tym warunkiem znaleźliśmyi
: Liczba do sprawdzenia warunkus
: Funkcja obliczająca sumę cyfr danych wejściowychChociaż
x
jest mniejszy niż wkład, powtarzamy, zwiększając,x
jeślii
spełnia warunek, i zwiększająci
. Razx == n
wracamyi
, ale musimy odjąć 1, ponieważ zostanie on zwiększony jeden raz zbyt wiele.źródło
Wypukłe 0,2,
3635 bajtówConvex to nowy język, który rozwijam, oparty w dużej mierze na CJam i Golfscript. Tłumacz i IDE można znaleźć tutaj . Dane wejściowe to liczba całkowita w argumentach wiersza poleceń. Indeksy są oparte na jednym. Wykorzystuje kodowanie CP-1252 .
źródło
Mathematica,
63606159 bajtówRobiąc to, pojawiła się druga odpowiedź, ale biję je o jeden bajt i publikuję to, zanim ten zostanie zagrany w golfa.Jeden zindeksowany.źródło
>2457
. Po prostu zwiększenie twojegoRange
nie pomoże, ponieważA058369[n]/n
wydaje się , że nie jest zbieżne.10^#
byłoby krótsze niż2^#*9
. Oczywiście staje się zbyt wolny, gdy n jest większe niż około 6 ...9^#
? FilSiatkówka, 103 bajty
Zdecydowanie do gry w golfa.
Używa nowej funkcji Retina
%
do kwadratu (dlatego nie działa jeszcze z wersją online).źródło
Mathcad,
7050 bajtówMathcad nie ma wbudowanych funkcji konwertujących liczbę na ciąg cyfr, więc funkcja użytkownika d (a) wykonuje to zadanie. Następnie program dokonuje iteracji przez dodatnie liczby całkowite, sprawdzając równość sum, aż zgromadzi n liczb w wektorze v. Program jest oceniany za pomocą operatora =, który wyświetla wektor wyniku. ( Pamiętaj, że cały program wygląda dokładnie tak, jak pokazano poniżej w arkuszu Mathcad )
Zaktualizowany program: Zakłada domyślną inicjalizację od zera i wykorzystuje fakt, że Mathcad zwraca wartość ostatnio ocenianej instrukcji w programie.
Korzysta z kolejności oceny wyrażeń w celu zwiększenia zmiennej a w pierwszym sumowaniu (która jest następnie dostępna do użycia w sumie kwadratowej)
Program oryginalny: zwraca wektor wszystkich liczb do n.
źródło
Japt , 15 bajtów
1-indeksowany
Spróbuj
źródło
Java 8, 113 bajtów
0-indeksowane
Wyjaśnienie:
Wypróbuj online.
źródło
Perl 5
-p
, 53 bajtówObejmuje
+1
dla-p
1 oparty
Wypróbuj online!
źródło
TI-BASIC
6662 bajtówAns
Funkcja pomocnicza generuje sumę cyfr wartości w
Ans
.Przykłady:
Wyjaśnienie:
Uwaga: TI-BASIC jest językiem tokenizowanym. Liczba znaków nie jest równa liczbie bajtów.
źródło
J , 62 bajty
Wypróbuj online!
1 indeksowany. J po raz kolejny nie radził sobie dobrze w tych „n-tych” zadaniach z powodu nadmiernej mechaniki księgowości.
źródło
APL (NARS), 49 znaków, 98 bajtów
1-indeksowany, test:
źródło
MathGolf , 10 bajtów
Wypróbuj online!
Wyjaśnienie
ú
źródło