Разбейте два числа на их факториалы; если они разделяют их, возвращают значение фальси. В противном случае верните истинное значение. (вдохновленный этим недавним вопросом )
Другими словами, запишите каждое входное число как сумму факториалов (натуральных чисел) самым жадным образом; вернуть истинное значение, если в обоих представлениях нет факториала, в противном случае - ложное значение.
пример
Учитывая 20 и 49:
20 = 3! + 3! + 3! + 2!
49 = 4! + 4! + 1!
В обоих представлениях нет факториала, поэтому верните истинное значение.
Дано 32 и 132:
132 = 5! + 3! + 3!
32 = 4! + 3! + 2!
3! появляется в обоих представлениях, так что возвращайте ложное значение.
I / O
Ввод и вывод может быть любым стандартным способом .
Ввод всегда будет двумя неотрицательными целыми числами; нет верхней границы этих целых чисел, кроме того, что требует ваш язык.
Вывод должен быть истинным или ложным значением . Эти значения не обязательно должны быть согласованными для разных входных данных, если каждый выходной результат корректен / неверен.
Тестовые случаи
Если один вход 0
, ответ всегда будет правдивым. Другие правдивые тестовые случаи:
{6, 3}, {4, 61}, {73, 2}, {12, 1}, {240, 2}, {5, 264}, {2, 91}, {673, 18},
{3, 12}, {72, 10}, {121, 26}, {127, 746}
Если оба входа являются нечетными целыми числами, или если оба входа являются одним и тем же положительным целым числом, то результат всегда будет ложным. Другие тесты Falsey:
{8, 5}, {7, 5}, {27, 47}, {53, 11}, {13, 123}, {75, 77}, {163, 160}, {148, 53},
{225, 178}, {285, 169}, {39, 51}, {207, 334}, {153, 21}, {390, 128}, {506, 584},
{626, 370}, {819, 354}
Это код-гольф , поэтому побеждает меньше байтов!
источник
Ответы:
Желе , 7 байт
Попробуйте онлайн!
Как это работает
источник
Æ!
кажется безумно полезным в определенных сценариях.Python 3 ,
9391 байтПопробуйте онлайн!
источник
Python 2 , 47 байт
Попробуйте онлайн!
источник
JavaScript (ES6), 71 байт
Целые числа JavaScript ограничены 53 битами точности, что почти достаточно для 18 !; это означает, что я могу использовать маску из 18 бит, чтобы отслеживать, какие факториалы нужны.
источник
PHP, 109 байт
Попробуйте онлайн!
источник
Mathematica, 73 байта
форма ввода
источник
±x_:=First@IntegerPartitions[x,99,Range[99]!];!IntersectingQ[±#,±#2]&[4,61]
(69 байт). В кодировке ISO 8859-1±
это один байт.C
122119 байтQ
это основная функция. Он должен вызываться ровно с двумя положительными целочисленными значениями. Это выход с кодом выхода из0
для truthy и1
для falsy.Хотя это, похоже, не работает на TIO, он работает на моей системе с предоставленным Homebrew
gcc 7.1.0
.Я давно не играл в
C
гольф, поэтому советы по игре в гольф очень ценятся!источник