zainspirowany tą rozmową na czacie
Liczba satysfakcjonująca to liczba, której dziesiętna reprezentacja ma postać abx
, o następujących właściwościach:
x
to najdłuższy powtarzający się sufiks lub ostatnia cyfra, jeśli na końcu nie ma powtórzeń (123333
->3333
,545656
->5656
,123
->3
)b
to pojedyncza cyfra przedx
(123333
->2
,55545656
->4
)a
jest pozostałym przedrostkiem (123333
->1
,55545656
->555
)a == c**b
(**
oznacza potęgowanie), gdziec
jest liczbą powtórzeń najmniejszej powtarzającej się częścix
(1623333
->4
(3 3 3 3
, nie33 33
))
Na przykład, 8300
jest satysfakcjonujące liczba z a = 8
, b = 3
, c = 2
i x = 00
. 24651
nie jest satysfakcjonujące liczbę, ponieważ x = 1
, b = 5
, a = 246
i nie jest liczbą całkowitą c
, która spełnia c^5 = 246
. 1222
nie jest również liczbą satysfakcjonującą, ponieważ za pomocą x = 222
i b = 1
nie ma pozostałych cyfr dla a
.
Biorąc pod uwagę dodatnią liczbę całkowitą n >= 100
, wyprowadza, czy liczba n
jest satysfakcjonująca.
Przykłady
8300: True (a=8, b=3, c=2, x=00)
24651: False
1222: False
92555: True (a=9, b=2, c=3, x=555)
64633: True (a=64, b=6, c=2, x=33)
512944: True (a=512, b=9, c=2, x=44)
123: True (a=1, b=2, c=1, x=3)
822809: False
376664: False
723799: False
1234: False
34330000000: True (a=343, b=3, c=7, x=0000000)
92313131: True (a=9, b=2, c=3, x=313131)
16424442444: True (a=16, b=4, c=2, x=24442444)
8333
jestx,c,b,a=33,2,3,8
zatem satysfakcjonujący?x
jest chciwy.Odpowiedzi:
Galaretka , 26 bajtów
czuje się za długo
Łącze monadyczne przyjmuje liczbę całkowitą i zwraca,
1
jeśli dane wejściowe są satysfakcjonujące, a0
jeśli nie.Wypróbuj online! lub zobacz zestaw testowy
W jaki sposób?
źródło
Python 3 , 141 bajtów
Wypróbuj online!
Python 3 , 144 bajty
Wypróbuj online!
wyjście odbywa się za pomocą kodu wyjścia
źródło
while
stan, aby zapisać bajt: TIOPerl 6 , 66 bajtów
Wypróbuj online!
źródło
Python 3 , 101 bajtów
Python 3 , 107 bajtów
Dane wyjściowe są według kodu wyjścia.
Ten kod nie działa poprawnie na Tio z powodu błędu zasięgu. Działa idealnie w IDLE.
źródło
JavaScript (ES6),
282268 bajtówźródło
Python 2, 286 bajtów
tak.
N
to funkcja rekurencyjna, która wyszukuje liczbę powtórzeń podłańcucha w łańcuchu. Zasadniczo pętla przechodzi przez wszystkie możliwe sufiksy, znajdując liczbę powtórzeń każdego z nichN
; wyklucza to wszystkie wartości,N==1
ponieważ ponieważ odnoszą się do braku powtórzeń; jeśli lista kończy się pustą, sufiks ostatniego znaku jest dołączany do listy.Następnie pobierany jest najdłuższy przyrostek (
q
), liczba znaków, które zajmuje, zostaje znaleziona (i
) ia==c**b
sprawdzona (print ...
).Jeśli po drodze wystąpi błąd (który często będzie), zostanie on zatrzymany w
except
bloku.Wszelkie sugestie są mile widziane!
źródło