Fedya studies in a gymnasium. Fedya‘s maths hometask is to calculate the following expression:
(1n?+?2n?+?3n?+?4n) mod 5
for given value of n. Fedya managed to complete the task. Can you? Note that given number n can
be extremely large (e.g. it can exceed any integer type of your programming language).
Input
The single line contains a single integer n (0?≤?n?≤?10105).
The number doesn‘t contain any leading zeroes.
Output
Print the value of the expression without leading zeros.
Sample test(s)
input
4
output
4
input
124356983594583453458888889
output
0
Note
Operation x mod y means taking remainder after division x by y.
Note to the first sample:
不懂什么费马小定理。打表之后发现:n%4=0的时候输出4,
其余输出0,但n数据太大了.我们知道:100以上的数可以分解成100*x+y者只需考虑y就可以了,
即只需考虑最后两位。这就好办了。读入字符串得到最后两位取模就可以了
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<limits.h> #include<cmath> using namespace std; const int maxn=1e6; char s[maxn]; int main() { while(~scanf("%s",s)) { int len=strlen(s); int sum=0; sum+=s[len-1]-'0'+(s[len-2]-'0')*10; if(sum%4==0) cout<<4<<endl; else cout<<0<<endl; } return 0; }
CF#260 B. Fedya and Maths
时间: 2024-11-09 07:33:07