这题目看一眼以为难度评级出错了,只是一个求余数的题目,,后来才发现,位数小于百万位,,,我还以为是大小小于百万呢,所以借鉴了另一大神的代码,
用大数,重点是同余定理:
(a+b)mod m=((a mod m)+(b mod m))mod m;
a*b mod m=(a mod m)*(b mod m) mod m;
a^b mod m=(a mod m)^b mod m;
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char num[1000010];
int main()
{
long int i;
int n,temp,t;
scanf("%d",&n);
while(n--)
{
scanf("%s",num);
t=strlen(num);
for(temp=0,i=0;i<t;i++)
temp=(temp*10+num[i]-'0')%10003;
printf("%d\n",temp%10003);
}
return 0;
}