terinspirasi oleh percakapan obrolan ini
Angka yang memuaskan adalah angka yang representasi desimalnya berbentuk abx
, dengan properti berikut:
x
adalah akhiran pengulangan terlama terpanjang, atau digit terakhir jika tidak ada pengulangan di akhir (123333
->3333
,545656
->5656
,123
->3
)b
adalah digit tunggal sebelumx
(123333
->2
,55545656
->4
)a
adalah awalan yang tersisa (123333
->1
,55545656
->555
)a == c**b
(**
menunjukkan eksponen), di manac
jumlah pengulangan dari bagian berulang terkecilx
(1623333
->4
(3 3 3 3
, tidak33 33
))
Sebagai contoh, 8300
adalah angka memuaskan dengan a = 8
, b = 3
, c = 2
, dan x = 00
. 24651
tidak sejumlah memuaskan, karena x = 1
, b = 5
, a = 246
, dan tidak ada bilangan bulat c
yang memenuhi c^5 = 246
. 1222
juga bukan angka yang memuaskan, karena dengan x = 222
dan b = 1
, tidak ada angka yang tersisa untuk a
.
Diberikan bilangan bulat positif n >= 100
, menghasilkan apakah n
angka yang memuaskan.
Contohnya
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
apakahx,c,b,a=33,2,3,8
dan karenanya memuaskan?x
serakah.Jawaban:
Jelly , 26 byte
terasa terlalu lama
Tautan monadik mengambil bilangan bulat dan kembali
1
jika input memuaskan dan0
jika tidak.Cobalah online! atau lihat test-suite
Bagaimana?
sumber
Python 3 , 141 byte
Cobalah online!
Python 3 , 144 byte
Cobalah online!
output melalui kode keluar
sumber
while
kondisi Anda untuk menyimpan byte: TIOPerl 6 , 66 byte
Cobalah online!
sumber
Python 3 , 101 byte
Python 3 , 107 byte
Output adalah dengan kode keluar.
Kode ini tidak berjalan dengan baik di Tio karena kesalahan rentang. Bekerja dengan sempurna di IDLE.
sumber
JavaScript (ES6),
282268 bytesumber
Python 2, 286 byte
kamu ya
N
adalah fungsi rekursif yang menemukan berapa kali substring sufiks diulang dalam string. Ini pada dasarnya loop melalui semua sufiks yang mungkin, menemukan berapa kali masing-masing diulang menggunakanN
; ini mengecualikan semua nilai di manaN==1
karena mereka merujuk tidak ada pengulangan; jika daftar tersebut akhirnya kosong, akhiran dari karakter terakhir ditambahkan ke daftar.Kemudian, sufiks terpanjang diambil, (
q
), jumlah karakter yang diambil ditemukan (i
), dana==c**b
dicentang (print ...
).Jika kesalahan terjadi di sepanjang jalan (yang sering akan terjadi), itu tertangkap di
except
blok.Setiap saran lebih dari diterima!
sumber