欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

不一样的计算

程序员文章站 2022-03-29 14:49:27
...

题目描述:不一样的计算
思考:我们都知道,这种题目是利用快速幂的方法进行解决,但是n又是一个特别大的数,所以说不能直接采用n进行解决问题,我们需要进一步简化n,根据费马定理应用的第一条(a^b mod p 在b很大的时候可以先用b = b % (p-1)),可以简化为n=n%100.
核心代码:

#include<bits/stdc++.h>
using namespace std;
int quickmod(int e,int x,int mod){
	int base=e;
	int res=1;
	while(x){
		if(x&1){
			res=(res*base)%mod;
		}
		base=(base*base)%mod;
		x=x>>1;
	}
	return res;
}
int main()
{
	int n=11;
	int mod=101;
	int m=2019;
	int x=quickmod(m,m,mod-1);
	int res=0;
	for(int i=1;i<=n;i++){
		res=(res+quickmod(i,x,mod))%mod;
	}
	cout<<res;
	return 0;
} 
相关标签: 编程题目