数论 - 算数基本定理的运用 --- nefu 118 : n!后面有多少个0
生活随笔
收集整理的這篇文章主要介紹了
数论 - 算数基本定理的运用 --- nefu 118 : n!后面有多少个0
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
題目鏈接:http://acm.nefu.edu.cn/JudgeOnline/problemshow.php?
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_o8888888o88" . "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; }
轉載于:https://www.cnblogs.com/crazyacking/p/3951750.html
總結
以上是生活随笔為你收集整理的数论 - 算数基本定理的运用 --- nefu 118 : n!后面有多少个0的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LVS之NAT模型配置实验
- 下一篇: 80后创业故事之:兄弟散伙,创业失败(转