Liczba nieskończonych oznacza liczbę n , który wyznacza nową górną granicę jego stosunek z sumy dzielnik funkcji Ď. Innymi słowy, n jest nadmiarowy wtedy i tylko wtedy, gdy dla wszystkich liczb całkowitych dodatnich x, które są mniejsze niż n :
Dla kilku wartości:
n σ(n) σ(n)/n superabundant
1 1 1.0000 yes
2 3 1.5000 yes
3 4 1.3333 no
4 7 1.7500 yes
5 6 1.2000 no
6 12 2.0000 yes
7 8 1.1429 no
8 15 1.8750 no
9 13 1.4444 no
Dłuższą listę (dla przypadków testowych) można znaleźć na stronie OEIS A004394 .
Jednym wysoce zalecanym negatywnym przypadkiem testowym (jeśli twój tłumacz może to obsłużyć) jest 360360, ponieważ wiąże się on z ostatnią nadliczbową liczbą.
Wyzwanie
Twój program powinien przyjąć jedną dodatnią liczbę całkowitą i wyprowadzić prawdziwą lub falsey wartość wskazującą, czy ta liczba całkowita jest nadwyżka.
Ponieważ jest to gra w golfa , wygrywa najkrótsza odpowiedź w bajtach.
Æs÷$ÐṀ=
na 7 bajtów. Nie zdawałem sobie sprawy zÐṀ
tego, że to rangowane, warto wiedzieć.360360
. W rzeczywistości była to moja początkowa wersja360360
?360360
to pierwsza liczba, dla której by się nie powiodła (tak sądzę), ponieważ jest to pierwsza liczba wiążąca wynik, który wystąpił wcześniej. (a naszym wynikiem byłoby[0, 1]
)Haskell , 73 bajty
-1 bajt dzięki Mr. Xcoder. -7 bajtów dzięki Laikoni.
Wypróbuj online!
System typów Haskell nie jest zbyt golfowy ...
źródło
Haskell ,
646361 bajtów-1 bajt dzięki Mr. Xcoder .
-2 bajty dzięki Lynn .
Wypróbuj online!
źródło
Oktawa , 41 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
jot , 35 bajtów
Dzięki Mr.Xcoder za znalezienie problemu i cole za jego naprawienie!
Wypróbuj online!
źródło
360360
(więcej szczegółów można znaleźć w wyzwaniu: Jednym wysoce zalecanym negatywnym przypadkiem testowym jest 360360, ponieważ wiąże się on z ostatnią nadliczbową liczbą ).#.~
(szczerze mówiąc, cała funkcja sumy dzielników jest naprawdę fajna). Tym, co było złe, jest to, że choć myśl o zrobieniu{:=>./
jest sprytna, nie zaspokaja „większej niż” części pytania.(1#.{:(]*0=|~)])\
. Coś jest jednak nie tak, może masz jakieś przemyślenia?(1#.]*0=|~)1+i.
haczyk i nie pasują tak łatwo na miejscu :)Julia 0.6 , 52 bajty
Wypróbuj online!
To rozwiązanie używa liczb wymiernych w celu zapewnienia poprawności w przypadku równości. (Testowanie 360360 zajęło prawie 10 minut.)
Używając liczb zmiennoprzecinkowych, można zapisać 2 bajty z lewą podziałką:
źródło
Pyth , 14 bajtów
( FryAmTheEggman zapisał 1 bajt)
Wypróbuj tutaj!lub zobacz więcej przypadków testowych.
Tylko moje obowiązkowe zgłoszenie w języku Pyth, które najprawdopodobniej jest możliwe do gry w golfa.
W jaki sposób?
źródło
05AB1E , 10 bajtów
Wypróbuj online! lub jako pakiet testowy
Wyjaśnienie
źródło
360360
(zobacz wyzwanie, aby uzyskać więcej informacji: jeden wysoce zalecany negatywny przypadek testowy to 360360, ponieważ wiąże się on z ostatnią superobfitą liczbą ).Python 3 , 77 bajtów
-1 bajt dzięki Rod. -3 bajty dzięki Dennisowi.
Wypróbuj online!
źródło
R z wykorzystaniem
numbers
59 bajtówźródło
Mathematica,
5350 bajtówCzysta funkcja. Pobiera liczbę całkowitą jako dane wejściowe i zwraca
True
lubFalse
dane wyjściowe.źródło
Tr@Divisors@#
działa?Japt v2.0a0,
1216 bajtówMózg pozbawiony snu nie wydaje się poprawiać tego dalej!
Zwraca
1
za prawdę lub0
falsey.Spróbuj
Poświęcono 4 bajty do obsługi
360360
.Wyjaśnienie
U
.Æ Ã
tworzy tablicę liczb całkowitych od0
doU-1
i przechodzi przez następującą funkcję jakoX
.â
dostaje dzielnikiU
.÷U
dzieli każdy z nich przezU
.x
sumuje wyniki.Xâ
dostaje dzielnikiX
.÷X
dzieli każdy z nich przezX
.x
sumuje wyniki.>
sprawdza, czy pierwszy wynik jest większy niż drugi.×
zmniejsza wynikową liczbę boolanów przez pomnożenie.źródło
360360
lub dla innych takich liczb całkowitych: Jeden wysoce zalecany negatywny przypadek testowy (jeśli twój tłumacz może to obsłużyć) to 360360, ponieważ wiąże się z ostatniąAPL + WIN, 37 bajtów
Monity o wprowadzenie ekranu.
źródło
C (gcc), 99 bajtów
Wypróbuj online!
C, 108 bajtów
Wypróbuj online!
źródło
s
trzeba zwrócić liczbę zmiennoprzecinkową?s(n)/n
dos(i)/i
.Szybki ,
120118 bajtówKompilacja zajmuje trochę czasu (około 6 sekund na TIO) z powodu niejawnych deklaracji typu w Swift.
Wypróbuj online!
źródło
Galaretka , 12 bajtów
Wypróbuj online! lub Znajdź wszystkie superabundujące liczby poniżej 1000.
ponieważ nienawidzę zmiennoprzecinkowych.
źródło
Funky , 79 bajtów
Wyjaśnił
To pierwsze określa funkcję,
d
która jestσ
funkcją, a jest to wersja gry w golfaMożemy ustawić i na 0, ponieważ
i*n%0
zawsze będzie0*...
więc równe0
.Kolejna połowa tego definiuje funkcję
f
, która jest funkcją Superabandunce, i jest to po prostu gra w golfaA to tylko sprawdza, jak sugeruje specyfikacja wyzwania, że wszystkie liczby całkowite od 1 do n-1 mają wartość
d(n)/n
mniejszą niż wartość wejściowa.Wypróbuj online!
źródło
APL (Dyalog) , 33 bajty
Wypróbuj online!
źródło
Łuska , 9 bajtów
Wypróbuj online! Zbyt wolno dla przypadku testowego 360360.
Wyjaśnienie
źródło
£ü¤<§ṁ/ḊN
. Tworzenie całej listy liczbPerl 5, 84 bajtów
wymaga
-E
(za darmo)prosta implementacja specyfikacji, golfa
źródło
APL (NARS), 61 znaków, 122 bajty
11π jest sumą funkcji czynników
źródło