本题考察数论中的一个高斯函数的定理,明白了它,感觉它真的很精彩...
定理:在 n! 中的标准分解式中质因数 p ( p<=n ) 的指数 h = [ n/p ] + [ n/p^2 ] + [ n/p^3 ]+.....
题意:要你求 N! 计算后,从个位开始出现多少个连续的零...
运用定理水解该题...思路找出 2 和 5 个数最小的一个..
#include<iostream>
using namespace std;
int main(){
int n,t;
scanf("%d",&t);
while(t--){
int sum2=0,sum5=0; // 计算2的个数,和5的个数
scanf("%d",&n);
int n1=n;
while(n1>0){
n1 /= 2;
if(n1>0)
sum2 += n1;
}
while(n>0){
n /= 5;
if(n>0)
sum5 += n;
}
if(sum2>sum5) sum2=sum5; // 整除10,则取小的
printf("%d\n",sum2);
}
}