基础模公式:
(a+b)%n=((a%n)+(b%n))%n --------------大数取模
(a-b)%n=((a%n)-(b%n)+n)%n
(ab)%n=((a%n)(b%n))%n -------------幂取模zoj3549
----------------------------------代码---------------------------------
//大数取模
<pre>#include<stdio.h>
#include<string.h>
int main() {
char s[200];
while(scanf("%s", &s) == 1) {
if(!strcmp(s, "0")) break;
int m = 0;
for(int i = 0; i < strlen(s); i++)
m = (m*10+s[i]-'0')%17;
printf("%d\n", m==0?1:0);
}
return 0;
}
//zoj3549
#include <stdio.h>
#include <iostream>
#include <math.h>
using namespace std;
const long long mod=1000000000;
long long pow_mod(long long a,long long n){
long long res=1;
while(n){
if(n&1) res=res*a%mod;
a=a*a%mod;
n=n>>1;
}
return res;
}
int main(){
int n,m;
while(scanf("%d%d",&m,&n)!=EOF){
long long sum=0;
for(long long i=1;i<=m;i++){
sum=sum+pow_mod(i,n);
}
int ans=0;
//printf("%d\n",sum);
while(sum%10==0&&sum>0){
ans++;
sum/=10;
}
printf("%d\n",ans);
}
}