Mean:
略。
analyse:
刚开始想了半天都没想出来,数据这么大,难道是有什么公式?
首先我们要知道一点:n!里面所有的0都是2*5得来的,而且不管怎样2的数量一定是>5的数量,所以我们只需要考虑有多少个5就可。
后面也是看了解题报告才知道有这么一个结论。
这是算数基本定理的一个结论:
n!的素因子分解中的素数p的幂为:[n/p]+[n/p^2]+[n/p^3]+...
知道这个结论,这道题就是一道大水题,1分钟ac。数论就是这样==。
Time complexity:O(n)
Source code:
/* _ooOoo_ o8888888o 88" . "88 (| -_- |) O = /O ____/`---'\____ .' \| |// `. / \||| : |||// / _||||| -:- |||||- | | \ - /// | | | \_| ''---/'' | | .-\__ `-` ___/-. / ___`. .' /--.-- `. . __ ."" '< `.___\_<|>_/___.' >'"". | | : `- \`.;` _ /`;.`/ - ` : | | `-. \_ __ /__ _/ .-` / / ======`-.____`-.___\_____/___.-`____.-'====== `=---=' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ............................................. 佛祖镇楼 BUG辟易 佛曰: 写字楼里写字间,写字间里程序员; 程序人员写程序,又拿程序换酒钱。 酒醒只在网上坐,酒醉还来网下眠; 酒醉酒醒日复日,网上网下年复年。 但愿老死电脑间,不愿鞠躬老板前; 奔驰宝马贵者趣,公交自行程序员。 别人笑我忒疯癫,我笑自己命太贱; 不见满街漂亮妹,哪个归得程序员? */ //Memory Time // 1347K 0MS // by : Snarl_jsb #include<algorithm> #include<cstdio> #include<cstring> #include<cstdlib> #include<iostream> #include<vector> #include<queue> #include<stack> #include<map> #include<string> #include<climits> #include<cmath> #define MAX 1100 #define LL long long using namespace std; int main() { // freopen("C:\Users\ASUS\Desktop\cin.txt","r",stdin); // freopen("C:\Users\ASUS\Desktop\cout.txt","w",stdout); int t,m; cin>>t; while(t--) { cin>>m; int five=5; int ans=0; while(five<=m) { ans+=m/five; five*=5; } cout<<ans<<endl; } return 0; }