在C ++中找到第一个自然因数可被x整除的阶乘

我们必须找到第一个自然数,其阶乘数可被x整除。x由用户给定。因此,如果x = 16,则输出将为6,即6!mod 16 =0。我们将使用通用方法来解决此问题。反复计数1!,2!,…。n!并使用x检查除数。如果系数为0,则停止并返回数字。

示例

#include<iostream>
using namespace std;
int getNumber(int x) {
   int fact = 1;
   int i = 0;
   while(fact % x != 0){
      i++;
      fact = fact * i;
   }
   return i;
}
int main() {
   int x = 16;
   cout << "Minimum value of N is: " << getNumber(x);
}

输出结果

Minimum value of N is: 6
猜你喜欢