Разбейте два числа на их факториалы; если они разделяют их, возвращают значение фальси. В противном случае верните истинное значение. (вдохновленный этим недавним вопросом )
Другими словами, запишите каждое входное число как сумму факториалов (натуральных чисел) самым жадным образом; вернуть истинное значение, если в обоих представлениях нет факториала, в противном случае - ложное значение.
пример
Учитывая 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}
Это код-гольф , поэтому побеждает меньше байтов!