Fedya and Maths 数论

Fedya and Maths

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.

Input
4
Output
4
Input
124356983594583453458888889
Output
0

题意: 求 (1n + 2n + 3n + 4n) mod 5
这次是毫无头绪的数论题,参考了一下网上内容,靠打表来发现规律——是一个质数取模的性质:n为4的倍数时答案为4,否则为0。(但是我本人还没有太详细的理解这个性质就直接拿来用了,,写完就学。)

#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#define Maxn 100005
using namespace std;
int main(){
    char seq[Maxn];
    int d;
    scanf("%s",seq);
    for (int i=0;i<strlen(seq);i++)   d=(d*10+seq[i]-'0')%4;
    if(d==0)  cout<<4<<endl;
    if(d==4)  cout<<0<<endl;
    return 0;
}


因为是“粗暴的数论题”,所以没有什么陷阱,靠数学知识。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值