求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 }
其他方法:
设8!=2p*3q*5m*7n;求出对应的p,q,m,n。
8!=27*32*51*71
因子个数=(7+1)*(2+1)*(1+1)*(1+1)=96