题目
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 ≤ 10^(10^5)). The number doesn't contain any leading zeroes.
Output
Print the value of the expression without leading zeros.
Sample 1
Inputcopy | Outputcopy |
---|---|
4 | 4 |
Sample 2
Inputcopy | Outputcopy |
---|---|
124356983594583453458888889 | 0 |
Note
Operation x mod y means taking remainder after division x by y.
Note to the first sample:
思路
一开始毫无思路,准备打表试一下,发现整除4的数结果都是4,其余的数都是0,但题目的数特别大,longlong都存不下,其实用string存就可以了,然后判断最后两位是否整除4即可,最后特判一下0、4、8。
代码
#include<iostream>
#include<string>
using namespace std;
string s;
int main()
{
cin >> s;
int t = s.length();
if (t == 1)
{
if ((s[0] - '0') % 4 == 0)
{
cout << 4;
}
else
{
cout << 0;
}
}
else
{
if ((s[t - 1] - '0' + (s[t - 2] - '0') * 10) % 4 == 0)
{
cout << 4;
}
else
{
cout << 0;
}
}
return 0;
}