如何找出是否n!可以表示为三个连续数字的乘法?

时间:2018-10-19 10:12:09

标签: c++

嘿,我的代码已经到此为止

    #include
    using namespace std;

int factorial(int n); int main() { int n; cout << "Enter a positive integer: "; cin >> n; cout << "Factorial of " << n << " = " << factorial(n); return 0; } int factorial(int n) { if(n > 1) return n * factorial(n - 1); else return 1; }

现在,我需要检查阶乘是否可以是三个连续数字的乘积,而我真的很坚持,谢谢您提前提供帮助!

1 个答案:

答案 0 :(得分:1)

我认为除了3!4!5!之外,没有其他数字。

仍然,如果要查找以下数字:

int hint = std::pow(fact, 1./3.);
for (int trial = -10;, trial < 11; ++trial)
{
    // check if (hint + trial - 1) * (hint + trial) * (hint + trial + 1) is equal to your result
}

我使用21个值进行检查,这太多了,但这是个主意。