【欧拉公式--降幂】

版权声明:版权所有……啊重点是我简直找不到第二个人写比我还多的吐槽-。- https://blog.csdn.net/StrongerIrene/article/details/82733772

焦作赛区的题目 快速幂模板+取模

因为a^b  b非常大 b可以取模化简 题目:https://nanti.jisuanke.com/t/31716


#include<algorithm>
#include<iostream>
#include<string>
using namespace std;
const int mode = 1000000007;
//a是底数,b是指数,mode是取模数,sum是记录取模的结果
//a是底数,b是指数,mode是取模数,sum是记录取模的结果
typedef long long ll;
ll oula(ll x)
{
	ll i, res = x;
	for (i = 2; i*i <= x; i++){
		if (x%i == 0){
			res = res - res / i;
			while (x%i == 0)
				x /= i;
		}
	}
	if (x>1)res = res - res / x;
	return res;
}
ll Mode(ll a, ll b, ll mode)
{
	ll sum = 1;
	while (b) {
		if (b & 1) {
			sum = (sum * a) % mode;
			b--;
		}
		b /= 2;
		a = a * a % mode;
	}
	return sum;
}
int main() {
	string  s; ll a, c, i, ans, tmp, b;
	int t; cin >> t;
	while (t--) {
		c = mode; a = 2;
		cin >> s;
		ll ans = 0;ll  b = 0; tmp = oula(c);
		ll len = s.length();
		for (i = 0; i<len; i++)
			b = (b * 10 + s[i] - '0') % tmp;
		b += tmp; b--;
		cout<< Mode(a, b, c)<<endl;
	}
	return 0;
}

参考网址 https://blog.csdn.net/qq_38735931/article/details/82716973

【费马小定理】假如p是质数,且gcd(a,p)=1,那么a^{^{p-1}}≡1(mod p),例如:假如a是整数,p是质数,则a,p显然互质(即两者只有一个公约数1),假如a是整数,p是质数,且a,p互质(即两者只有一个公约数1),那么a的(p-1)次方除以p的余数恒等于1。

我们要求2^{^{n-1}},构造一下

所以,有两个mod,mod1=1e9+7,mod2=1e9+6;

猜你喜欢

转载自blog.csdn.net/StrongerIrene/article/details/82733772