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)))