题目:
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3549
因为结果最大不超过10,所以用快速幂,结果mod一个很大的数就可以了,这道题应该有更好的解法,只是没有想到,还望大神指教。
#include <stdio.h>
#include<algorithm>
using namespace std;
typedef long long ll;
const int mod= 1000000000;
ll pow(ll x,lly,ll Mod){
ll ans=1;
for(;y;y>>=1){
if(y&1){
ans*=x;
ans%=mod;
}
x*=x;
x%=mod;
}
return ans;
}
int main(){
int m,n;
while(~scanf("%d%d",&m,&n)){
ll sum =0;
for(inti = m;i > 0;i--)
sum+=pow(i, n, mod);
//printf("%lld\n",sum);
intcont;
for(cont =0;!(sum%10);cont++,sum/=10);
printf("%d\n",cont);
}
return 0;
}