将两个数字分解为阶乘;如果它们共享任何一个,则返回一个false值。否则,返回真实值。(受到最近这个问题的启发)
换句话说,以最贪婪的方式将每个输入数字写为(正整数的)阶乘和。如果两个表示中都没有阶乘出现,则返回真实值,否则返回假值。
例
鉴于20和49:
20 = 3! + 3! + 3! + 2!
49 = 4! + 4! + 1!
在这两种表示中都没有阶乘出现,因此返回真实值。
鉴于32和132:
132 = 5! + 3! + 3!
32 = 4! + 3! + 2!
3!在两种表示形式中均出现,因此返回假值。
输入输出
输入和输出可以通过任何标准方式进行。
输入将始终是两个非负整数;这些整数没有您的语言要求的上限。
输出应为真值或假值。只要每个输出正确地为真/假,这些值对于不同的输入不一定必须是一致的。
测试用例
如果输入为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}
如果两个输入都是奇数整数,或者两个输入都是相同的正整数,则输出将始终为false。其他虚假测试用例:
{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}
这是代码高尔夫球,因此最少的字节获胜!
“以最贪婪的方式将每个输入数字写为阶乘(正整数)的和”,您不是说最懒惰的方式吗?
—
user41805
@KritixiLithos没有 他指的是称为贪婪算法的一类算法,该算法通过在每个步骤之后最大化一些指标来工作。在这种情况下,请尽其所能。
—
John Dvorak