C语言给定两个数m,n,其中m是一个素数。 将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m。
1个回答
展开全部
求n的阶乘 n!
然后对n的阶乘分解质因数
看其中有多少个m
比如n = 5, m = 3
那么n!=120=2*2*2*3*5
其中有一个3 那么输出3
思路
不能直接求阶乘 那样一个是太大 再一个时间开销也多
直接对1->n 每个值做判断 其中有多少个质因子m 然后所有的相加就可以
然后对n的阶乘分解质因数
看其中有多少个m
比如n = 5, m = 3
那么n!=120=2*2*2*3*5
其中有一个3 那么输出3
思路
不能直接求阶乘 那样一个是太大 再一个时间开销也多
直接对1->n 每个值做判断 其中有多少个质因子m 然后所有的相加就可以
追问
100 里面能分解出24个 5?
追答
不是100里面分解 是100!
即100的阶乘
也就是
1*2*3*4*...*100
其中有5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100
于是1+1+1+1+2+1+1+1+1+2+1+1+1+1+2+1+1+1+1+2=24
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询