NYOJ_56 阶乘因式分解(1)
NYOJ_56 阶乘因式分解(一)
题目地址
分析:
本题分析很重要。
举例:
100! = 1*5*2*5*3*5*...20*5*other ,other 为不能整除5的数
100! = 20!*5*5*20*other,
问题转化成为求 20!里有多少个5,
一直循环下去 直到 k!/5 为 0,把所有的k求和即可。
代码:
#include<iostream> using namespace std; int main() { int num; cin>>num; while(num--) { int n, m; cin>>n>>m; int k=1,sum=0; while(k){ k = n/m; sum += k; n = k; } cout<<sum<<endl; } return 0; }