1003 階乘後面0的數量(51nod) 解題報告
阿新 • • 發佈:2018-12-15
基準時間限制:1 秒 空間限制:131072 KB 分值: 5 難度:1級演算法題
n的階乘後面有多少個0?
6的階乘 = 1*2*3*4*5*6 = 720,720後面有1個0。
Input
一個數N(1 <= N <= 10^9)
Output
輸出0的數量
Input示例
5
Output示例
1
勒讓德定理:在標準的素因子分解式中,素數p的指數為∑(i=1,p^i<=n)[n/p^i](向下取整)。此題直接算出5的指數即可。
可見,有了數學定理算起來就是不一樣啊
程式碼:
/* 1003 階乘後面0的數量 */ #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> using namespace std; #define ll long long const int N=50005; int main() { //判斷有多少個2和5因子 //由於2的個數一定比5多,故只要判斷5的個數即可 int n; while(scanf("%d",&n)==1) { int sum=0; int pul=5; for(int i=1;pul<=n;i++) { sum+=n/pul; pul*=5; } printf("%d\n",sum); } return 0; }