JavaScript (ES6), 63 байта, SLuck49
Оригинал:
x=>eval(atob`eCp4KzEvLyAgfXBModLS4TvEn4wp1iys9YRRKC85KLIhNMC=`)
Crack:
x=>eval(atob`CgpNYXRoLnBvdyh4LTEsMC41KSAvLw4589CEIKKMRefipyz=`)
Код base64 выше декодирует в:
Math.pow(x-1,0.5) //...
где ...
обозначает кучу случайного мусора, который игнорируется интерпретатором JS, поскольку он находится в комментарии.
Я нашел это решение методом проб и ошибок. В конце концов, только на самом деле сложная часть были две новых строк в начале кода, нужно сделать остальное линии правильно и получить M
в Math
к base64-кодированию в то , что было доступно в исходном наборе символов. Сначала я пробовал пробелы, но " M"
base64-кодирует в, "ICBN"
и мне нужно было единственное доступное B
для кодирования ".po"
позже в коде. "0+M"
, "1*M"
, "1?M"
Или любые другие подобные не-оп префиксы я мог думать не получились, но переводы строки сделали.
Я подозреваю, что это может быть не совсем намеченным решением, но как бы то ни было - оно работает. :)
Демо-версия:
var f = x=>eval(atob`eCp4KzEvLyAgfXBModLS4TvEn4wp1iys9YRRKC85KLIhNMC=`)
var g = x=>eval(atob`CgpNYXRoLnBvdyh4LTEsMC41KSAvLw4589CEIKKMRefipyz=`)
for (var i = -0; i <= 10; i++) console.log(i, '->', f(i), '->', g(f(i)))