n的阶乘的因子分解

求n的阶乘的因子个数:

例子:求8!的因子个数。

笨方法:

先求8的阶乘,就是1*2*3....*8=sum,然后sum除1,除2,除3...一直到sum除sum,余数是0就计数器+1

 1 #include<iostream>
 2 #include<cmath>
 3 using namespace std;
 4 int main()
 5 {
 6     long sum=1;
 7     for(int i=1;i<=8;i++)
 8     {
 9         sum*=i;
10     }
11     cout<<"sum="<<sum<<endl;
12     int n=0;
13     for (long i=1;i<=sum;i++)
14     {
15         if (sum%i==0)//i是一个因子
16         {
17             n++;
18         }
19     }
20     cout<<"n="<<n<<endl;
21 
22     system("pause");
23 }
View Code

其他方法:

设8!=2p*3q*5m*7n;求出对应的p,q,m,n。

8!=27*32*51*71

因子个数=(7+1)*(2+1)*(1+1)*(1+1)=96

原文地址:https://www.cnblogs.com/zhiaiyaya/p/3657731.html