Wprowadzenie
W dziwnym świecie liczb całkowitych dzielniki są jak aktywa i nazywają „bogatymi” liczbami, które mają więcej dzielników niż ich odwrócenie, podczas gdy nazywają „biednymi” tymi, które mają mniej dzielników niż ich odwrócenie.
Na przykład liczba ma pięć dzielników: , , , , podczas gdy jej odwrócenie, , ma tylko cztery: 1, , .
Więc nazywany jest bogata liczba, podczas gdy biedny numer.
1042
Biorąc pod uwagę tę definicję, możemy utworzyć następujące dwie liczby całkowite liczb bogatych i słabych:
(here we list the first 25 elements of the sequences)
Index | Poor | Rich
-------|------|-------
1 | 19 | 10
2 | 21 | 12
3 | 23 | 14
4 | 25 | 16
5 | 27 | 18
6 | 29 | 20
7 | 41 | 28
8 | 43 | 30
9 | 45 | 32
10 | 46 | 34
11 | 47 | 35
12 | 48 | 36
13 | 49 | 38
14 | 53 | 40
15 | 57 | 50
16 | 59 | 52
17 | 61 | 54
18 | 63 | 56
19 | 65 | 60
20 | 67 | 64
21 | 69 | 68
22 | 81 | 70
23 | 82 | 72
24 | 83 | 74
25 | 86 | 75
... | ... | ...
Uwagi:
- jako „odwrócenie” liczby rozumiemy cyfrową rewers , tzn. odwrócenie cyfr w bazie-10. Oznacza to, że liczby kończące się jednym lub kilkoma zerami będą miały „krótsze” odwrócenie: np. Odwrócenie
1900
jest0091
zatem91
- celowo wykluczamy liczby całkowite mające tę samą liczbę dzielników co ich odwrócenie, tj. należące do OEIS: A062895
Wyzwanie
Biorąc pod uwagę dwie sekwencje zdefiniowane powyżej, Twoim zadaniem jest napisanie programu lub funkcji, która, biorąc pod uwagę liczbę całkowitą n
(możesz wybrać 0 lub indeks 1), zwraca n-tą słabą i n-tą bogatą liczbę.
Wejście
- Liczba całkowita (
>= 0
jeśli indeksowane 0 lub indeksowane>= 1
1)
Wynik
- 2 liczby całkowite, jedna dla sekwencji słabej i jedna dla sekwencji bogatej, w preferowanej kolejności, o ile jest spójna
Przykłady:
INPUT | OUTPUT
----------------------------------
n (1-indexed) | poor rich
----------------------------------
1 | 19 10
18 | 63 56
44 | 213 112
95 | 298 208
4542 | 16803 10282
11866 | 36923 25272
17128 | 48453 36466
22867 | 61431 51794
35842 | 99998 81888
Główne zasady:
- To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.
Nie pozwól, aby języki gry w golfa zniechęcały Cię do publikowania odpowiedzi w językach niekodujących golfa. Spróbuj znaleźć możliwie najkrótszą odpowiedź na „dowolny” język programowania. - Do odpowiedzi mają zastosowanie standardowe reguły z domyślnymi regułami We / Wy , więc możesz używać STDIN / STDOUT, funkcji / metody z odpowiednimi parametrami i typem zwracanych, pełnych programów. Twoja decyzja.
- Domyślne luki są zabronione.
- Jeśli to możliwe, dodaj link z testem kodu (tj. TIO ).
- Zalecane jest również dodanie wyjaśnienia do odpowiedzi.
2
. W tym celu zobacz wniosek 1.4 na końcu poniższej pracy,n
równy19, 199, 1999, ...
: m-hikari.com/ijcms-password/ijcms-password13-16-2006/…Odpowiedzi:
05AB1E , 16 bajtów
Wypróbuj online!
0-indeksowany [bogaty, słaby]:
Może ktoś może wyjaśnić, dlaczego ta wersja nie wydaje się kończyć, ale kiedy kliknę „anuluj wykonanie” na TIO, kończy się poprawną odpowiedzią, lub jeśli zaczekasz 60 sekund, otrzymasz poprawną odpowiedź. W przypadku wersji, która kończy się „poprawnie”, możesz użyć:
T+nL.¡ÂÑgsÑg.S}¦ζsè
+3 bajtówźródło
∞n5è
obliczyłby tylko pierwsze 6 liczb. Myślę, że kiedy tego typu konstrukcje zapętlające / grupujące / dzielące wchodzą do gry, leniwa eval kończy się niepowodzeniem i próbuje obliczyć wszystkie przedmioty przed powrotem.€g
… Używałem go tak często. Zapisałbym tutaj bajt z alternatywną (teraz równy bajt)‚рgÆ.±
. Ładna odpowiedź! Świetne wykorzystanie.¡
!δg
lol.JavaScript (ES6),
121 115 113111 bajtówDane wejściowe są indeksowane 1. Wyjścia jak
[poor, rich]
.Wypróbuj online!
Skomentował
Funkcja pomocnika
Główny
źródło
Galaretka , 22 bajty
Wypróbuj online!
Wyjaśnienie
źródło
Wolfram Language (Mathematica) , 152 bajty
Wypróbuj online!
Jeśli przypuszczenie jest prawdziwe, to rozwiązanie z 140 bajtów również działa
Wypróbuj online!
Oto słaba vs bogata fabuła
źródło
a(27635)= {70003, 65892}
Perl 6 , 81 bajtów
Wypróbuj online!
* > *
jest anonimową funkcją, która zwraca true, jeśli jej pierwszy argument jest większy niż drugi. Podobnie dla* < *
. Pierwszy wybierze liczby należące do sekwencji bogatej, drugi wybierze te, które należą do złej sekwencji.(* > *, * < *).map(-> &c { ... })
tworzy parę nieskończonych sekwencji, z których każda oparta jest na jednej z funkcji komparatora: sekwencji bogatej i sekwencji słabej, w tej kolejności.»[$_]
indeksuje do obu tych sekwencji za pomocą$_
argumentu funkcji najwyższego poziomu, zwracając dwuelementową listę zawierającą$_
th element bogatej sekwencji i$_
th element złej sekwencji.grep $_ %% *, 1..$_
tworzy listę dzielników$_
.map { grep $_ %% *, 1..$_ }, $_, .flip
tworzy dwuelementową listę dzielników$_
i dzielników$_
z odwróconymi cyframi („odwrócone”).[[&c]]
zmniejsza tę dwuelementową listę z funkcją komparatora&c
(większą lub mniejszą), tworząc wartość logiczną wskazującą, czy ta liczba należy do bogatej sekwencji złej sekwencji.źródło
1..$_
może być^$_
. Możesz także przenieść[$_]
do wewnątrz funkcji mapy. 78 bajtówPython 2 ,
142141 bajtówWypróbuj online!
Nierekurencyjna alternatywa (bardzo podobna do innych odpowiedzi w języku Python)
Python 2 , 143 bajty
Wypróbuj online!
źródło
Python 2 ,
158153 bajtów-2 bajty dzięki shooqie
Wypróbuj online!
Wejście jest indeksowane na 0. Wyjścia jak
poor rich
.źródło
+=[c]
zamiast.append(c)
pracy?Rubin , 128 bajtów
Dane wejściowe są indeksowane od zera . Wykazuje jako [biedny, bogaty].
Wyjaśnienie
Wypróbuj online!
źródło
Perl 6 , 76 bajtów
Wypróbuj online!
Nie widziałem odpowiedzi Perla 6 Seana , ale działa to w inny sposób. Zauważ, że zakodowałem górną granicę jako
n*3+99
, co prawdopodobnie nie jest ściśle poprawne. Jednak mogę wymienić*3
z³
bez dodatkowych bajtów, które sprawiają, że program znacznie mniej efektywne, jeśli bardziej poprawne.źródło
Python 2 , 152 bajty
Wypróbuj online!
W końcu jest bardzo podobny do odpowiedzi Rod . Zwraca zerową,
n
ubogą, bogatą krotkę.źródło
Ikona ,
180175 bajtówWypróbuj online!
źródło
APL (Dyalog Unicode) , 34 bajty
Wypróbuj online!
Podziękowania dla Adama i ngn za pomoc w grze w tę potworność.
Przekroczono limit czasu TIO dla większych indeksów (które wymagają
⍳1e5
lub⍳1e6
), ale przy wystarczającej ilości czasu i pamięci funkcja zakończy się poprawnie.źródło
R ,
152137 bajtów-12 bajtów dzięki Giuseppe -3 bajtów dzięki digEmAll
Wypróbuj online!
T
jest obecnie wypróbowywaną liczbą całkowitą; najnowsze słabe i bogate liczby są przechowywane w wektorzeF
.Najkrótszym sposobem na odwrócenie liczby całkowitej było przekonwertowanie jej na cyfry w bazie 10 za pomocą arytmetyki modułowej, a następnie konwersja z mocami 10 odwróconych, ale spodziewam się, że zostanę obezwładniony na tym i innych frontach.
Objaśnienie (poprzedniej, podobnej wersji):
źródło
nchar
.log10
!JavaScript (Node.js) ,
190180 bajtówWyjścia jak
[poor, rich]
.Wypróbuj online!
Wyjaśnienie
d(n)
FunkcjonowaćTen pomocnik znajduje liczbę czynników, które ma liczba.
Główna funkcja
źródło
C # (interaktywny kompilator Visual C #) , 221 bajtów
Wypróbuj online!
źródło