题目看起来蛮吓人的...推导一下就知道1,2,3,4的n次方对5取余的循环结是4,在推一下就可以知道n只要是4的倍数即对4取余为0的是4之外,其他的全部为0;
不管有多少位数,百位以上必定能整除4,那么只需要考虑后两位即可。
#include<stdio.h>
#include<string.h>
char s[1000005];
int main()
{
int n=0,sum,i,k;
scanf("%s",s);
int len=strlen(s);
for(i=len-1,k=0;i>=0;i--)
{
if(k==2)
break;
if(k==1)
n=n+(s[i]-'0')*10;
else if(k==0)
n+=s[i]-'0';
k++;
}
if(n%4==0)
sum=4;
else
sum=0;
printf("%d\n",sum%5);
return 0;
}