nefu 118 质数在阶乘中的幂 http://acm.nefu.edu.cn/test/problemshow.php?problem_id=118
#include<iostream> #include<cmath> using namespace std; int main() { int k; cin>>k; int n; while(cin>>n) { int exponent=0; for(int i=1;pow(5.0,i)<=n;i++) exponent+=n/pow(5.0,i); cout<<exponent<<endl; } }
//应该发现 2的幂总比5高; 所以5的幂次等于零的个数
// 阶乘中求质数的幂的方法
利用这个结论还可以求质数在组合数中的幂 如 nefu 119 http://acm.nefu.edu.cn/test/problemshow.php?problem_id=119
#include<iostream> #include<cmath> using namespace std; int main() { int k; cin>>k; int n; double p; while(cin>>n>>p) { int exponent=0; for(int i=1;pow(p,i)<=n;i++) exponent+=n/pow(p,i); int exponent1=0; for(int i=1;pow(p,i)<=n*2;i++) exponent1+=2*n/pow(p,i); cout<<exponent1-exponent*2<<endl; } }