a₁.;A×?≜ẹ+
Спробуйте в Інтернеті!
Це подання функції, яке приймає вхід через .і виробляє вихід через ?(протилежне звичайній умові; всі функції Brachylog мають рівно два аргументи, які можуть бути вхідними або вихідними аргументами, але мова не примушує конкретного використання аргументу). Ми , як правило, не вважаємо умовами використання аргументів релевантними в PPCG .
Пояснення
Попередня версія цього рішення мала особливий випадок ( Ḋ|тобто "повернути цифри буквально") для однозначних цифр, але в питанні, мабуть, зазначено, що вам не потрібно перевіряти це (дякую @DLosc, що це зробив), тому я видалив це. (Написане рішення не буде працювати з однозначними цифрами, оскільки Брахілог не розглядає 1 як можливість для невідомого у множенні, щоб запобігти нескінченним циклам; його множення є довільною цілістю.)
Тож ця відповідь зараз стосується майже прямого перекладу специфікації. Починаючи з ?(вихід / число, яке ми намагаємося знайти; предикат Brachylog завжди неявно починається з ?), ми використовуємо, a₁.щоб стверджувати, що він .(вхід) є суфіксом. Тоді ;A×?означає, що ми можемо помножити ( ×) результат на щось ( ;A), щоб отримати ?(вихід). Нарешті, ẹ+підсумовує ( +) цифри ( ẹ) ?та, за замовчуванням, неявне твердження в кінці кожної програми Brachylog, що дає кінцевий результат .. Іншими словами, ця програма " .є суфіксом ?, .помноженим на щось є ?, .це цифра суми?", що дуже близьке до буквального перекладу оригінальної програми.
≜Необхідно вимога цифри суми повинні бути виконано. Я припускаю, що щось ẹне подобається невідомим, тому ≜підказує Брахілогу використовувати грубу силу підходу для цієї частини програми, а не алгебри.