Цей виклик є даниною нашому легендарному письменнику Challenge ™, хобі Кальвіна - тепер перейменованому на Helka Homba - в тому ж дусі, як Generate Dennis Numbers .
Калвін є досить вражаючим учасником PPCG, з 6-ою найбільшою репутацією і, мабуть, безперечно, найкращими навичками написання викликів у всіх нас. Однак, звичайно, для цього завдання ми зупинимося на його ідентифікаторі користувача.
26997 спочатку може виглядати не дуже цікаво. Насправді це мало
цікаво кількома способами. Наприклад, ось діаграма 26997 mod <n>
певних значень n
:
n | 26997 % n
----+-----------
3 | 0
4 | 1
5 | 2
6 | 3
7 | 5 :(
8 | 5
9 | 6
10 | 7
Однак 26997 - одне з небагатьох чисел, яке може бути представлене числом , де ціле число> 0.(n * 10)n - n
n
Ось кілька перших чисел, які можна виразити таким чином, які ми звідси далі назвемо Кальвіновими числами :
9
398
26997
2559996
312499995
46655999994
8235429999993
1677721599999992
387420488999999991
99999999999999999990
28531167061099999999989
8916100448255999999999988
3028751065922529999999999987
1111200682555801599999999999986
437893890380859374999999999999985
184467440737095516159999999999999984
82724026188633676417699999999999999983
39346408075296537575423999999999999999982
19784196556603135891239789999999999999999981
10485759999999999999999999999999999999999999980
Ці кальвінові номери мають деякі цікаві властивості. Більше шаблонів з’являється, коли ми їх вирівнюємо правильно і виділяємо всі 9
s:
Ці питання, які нас цікавлять для цього виклику, це:
Незалежно від цього
n
, кожне число Кальвіна закінчується на .10n - n
Так, Кельвін (1) кінці з
9
, Кальвіна (2) закінчується98
, і зразок триває997
,9996
,99995
і т.д., при цьому кожний наступний Calvin Кількість відлік і додати додатковий9
до початку.Для значень
n
деn % 10 == 0
(тобтоn
ділиться на 10), Кальвін (n) закінчується на .102n - n
Тобто, візерунок поширюється на вдвічі більше цифр, ніж звичайний, з додатковою кількістю
9
s на початку дорівнюєn
.Коли
n
це сила10
(10
,100
,1000
і т.д.), шаблон простягається ще далі-кожна одна цифра є або9
чи0
.Ця закономірність така: дев'ять і нулі. Це простіше зрозуміти на графіку (у вашому рішенні все одно доведеться обробляти числа до 10000, тому це все, що вам потрібно):
(n + 1) * 10n - n
n
n | Calvin(n) -------+----------------------- 10 | 19 nines, 1 zero 100 | 298 nines, 2 zeroes 1000 | 3997 nines, 3 zeroes 10000 | 49998 nines, 4 zeroes
Кількість дев'яток навіть демонструє декілька властивостей самих Calvin Numbers , але це занадто багато деталей для цього завдання.
Виклик
Calvin Numbers стає занадто великим, занадто швидким, щоб "отримати n-те виклик Calvin Number, щоб здійснити мовами без довільних точних цілих чисел. Тому завдання полягає в тому, щоб визначити, чи відповідає число вказаним вище шаблонам, тобто чи число - це "номер кандидата Кальвіна" чи ні.
Ось критерії для кількості, яку слід вважати номером Кальвіна (далі - коротко CCN):
Він закінчується числом, яке підходить до шаблону для цілого числа .
10n - n
n
Отже, щоб бути CCN, число повинно закінчуватися на 9, або 98, або 997, 9996, 99995 тощо.
Якщо остання цифра є
0
, вона також повинна закінчуватися так само, як і в попередньому пункті.102n - n
n
Це означає, що
12312312399999999999999999999999999999999999980
це не CCN, але10485759999999999999999999999999999999999999980
є (насправді це правильний).Якщо значення
n
в попередніх двох кроках - потужність 10, все число повинно відповідати третьому шаблону, описаному вище.
Введення-виведення
Вхід буде надано у вигляді рядка, і він завжди буде представляти число, менше ніж Calvin(10000) + 10000
(яке також можна виразити як
). (Для уточнення, найбільший можливий вхід - 50000 дев'ять, а найменший можливий вхід .)1050000
1
Вихід повинен бути правдоподібним, якщо вхід представляє число, яке є CCN, а помилкове значення - в іншому випадку. Для визначення цих термінів див. Мета .
Тестові справи
Вхідні дані, які повинні спричинити триєдне значення:
9
26997
99999999999999999990
437893890380859374999999999999985
10485759999999999999999999999999999999999999980
999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999900
259232147948794494594485446818048254863271026096382337884099237269509380022108148908589797968903058274437782549758243999867043174477180579595714249308002763427793979644775390624999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999850
1027092382693614216458468213549848274267264533712122209400214436472662418869004625362768700557725707157332451380426829473630485959339004149867738722096608953864534215649211386152032635755501464142277508289403434891444020975243742942368836579910208098242623061684967794815600266752580663281483595687307649904776800899000484103534573979334062832465904049046104660220505973505050538180250643437654409375728443182380726453925959886901573523090619465866810938078629561306599174923972607310649219442207992951278588892681161967770532314854195892941913447519131828356181219857012229150315613569162930098836696593474888020746503116685472977764615483225628639443918309216648893055765917642528801571387940219884056021782642758517893124803355573565644666880920219871370649806723296262307899148031362558110611562055614190049332906933360406981359187305353360484377948591528385990255894034369523166777375785900198782250651053530165824984161319460372145229568890321167955690544235365954748429659526071133879976348254667755220636244075595290123987745560038255541751251200827018722242010925729483977388235141539109139120069464709993781356334885359200734157439642935779132120725231008699003342908280056975158266782782304550273268246184659474285971272532354920744956064671379745219778013465792544241259691493098443741845166419905920702654683993902052727208789915748213660571390107102976665776293366616518962323688316843422737162297255648351087284877987537325761187239807598009767936409247247417410607537333841650998421607775989879490006136112078031237742552602618996017404602674987181629319060214150458746352191115606789019875790921190573561400752476956787515392210098071407806221412149732955903681690377998882038499470092453400748916257640501488510563314141992573250882286817352407459053866180642034662845694338400386823496563185664221362457851894843439705365082614359220653285052800751906334000698723288454227654466240011140570190301931122357632719033275258503935182047714841766010764632214069382579660602964184231995352310981811428980530707871661256260926759509418970021224649566130995825802676411575264295689037775857674060557127369881379685432291930869072749065675720647595081516460449973211035071920099349836074945813885239767788449030051892470053308048906746273036871919251738920141071153777908913021898541658119513188402271468288293408246833819954990709460114510017598873554406350044072275643892449218394225569069468466660333869360644718801813500285081977089623921689922204185138003164149106921903053243405307546841149889662566529697217181329051855403329741409045760789280950603184354320839342588593832348459938736210265795978675460906504449491132656307256451707333439200130425932724262464823848348296787445624028385464112471408499986690593095395244034885421580844176161027627954578726208600199909963055422192706751708210693468639072881081717288837393188012794669089175022406897622823484220002211676520484520241135615999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999028
Вхідні дані, які повинні спричинити помилкове значення:
1
26897
79999999999999999990
437893890380859374299999999999985
12312312399999999999999999999999999999999999980
999998999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999900
259232147948794494594485446818048254863271026096382337884099237269509380022108148908589797968903058274437782549758243999867043174477180579595714249308002763427793979644775390624999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999911111
1027092382693614216458468213549848274267264533712122209400214436472662418869004625362768700557725707157332451380426829473630485959339004149867738722096608953864534215649211386152032635755501464142277508289403434891444020975243742942368836579910208098242623061684967794815600266752580663281483595687307649904776800899000484103534573979334062832465904049046104660220505973505050538180250643437654409375728443182380726453925959886901573523090619465866810938078629561306599174923972607310649219442207992951278588892681161967770532314854195892941913447519131828356181219857012229150315613569162930098836696593474888020746503116685472977764615483225628639443918309216648893055765917642528801571387940219884056021782642758517893124803355573565644666880920219871370649806723296262307899148031362558110611562055614190049332906933360406981359187305353360484377948591528385990255894034369523166777375785900198782250651053530165824984161319460372145229568890321167955690544235365954748429659526071133879976348254667755220636244075595290123987745560038255541751251200827018722242010925729483977388235141539109139120069464709993781356334885359200734157439642935779132120725231008699003342908280056975158266782782304550273268246184659474285971272532354920744956064671379745219778013465792544241259691493098443741845166419905920702654683993902052727208789915748213660571390107102976665776293366616518962323688316843422737162297255648351087284877987537325761187239807598009767936409247247417410607537333841650998421607775989879490006136112078031237742552602618996017404602674987181629319060214150458746352191115606789019875790921190573561400752476956787515392210098071407806221412149732955903681690377998882038499470092453400748916257640501488510563314141992573250882286817352407459053866180642034662845694338400386823496563185664221362457851894843439705365082614359220653285052800751906334000698723288454227654466240011140570190301931122357632719033275258503935182047714841766010764632214069382579660602964184231995352310981811428980530707871661256260926759509418970021224649566130995825802676411575264295689037775857674060557127369881379685432291930869072749065675720647595081516460449973211035071920099349836074945813885239767788449030051892470053308048906746273036871919251738920141071153777908913021898541658119513188402271468288293408246833819954990709460114510017598873554406350044072275643892449218394225569069468466660333869360644718801813500285081977089623921689922204185138003164149106921903053243405307546841149889662566529697217181329051855403329741409045760789280950603184354320839342588593832348459938736210265795978675460906504449491132656307256451707333439200130425932724262464823848348296787445624028385464112471408499986690593095395244034885421580844176161027627954578726208600199909963055422192706751708210693468639072881081717288837393188012794669089175022406897622823484220002211676520484520241135615999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999027
Правила
Ви не можете в жодній точці вашої програми обробляти цілі числа, що перевищують
18446744073709551615
( ), якщо у вашій мові є підтримка цілих чисел з довільною точністю (або типи чисел з достатньо високою точністю, щоб дозволяти зберігати числа, що перевищують це).264
Це просто для запобігання рішень, які проходять через усі можливі цифри Calvin (або всі можливі значення ).
10n - n
Це код-гольф , тому найкоротший код у байтах виграє.
9
повинно бути правдою. Виправлено.