72WA
查看原帖
72WA
780505
x1489631649楼主2024/6/5 21:09

开了long long

#include <bits/stdc++.h>
using namespace std;
long long a,n,k;
long long f(long long x,long long y)
{
	if(x==1&&y==0)
		return a*a%k;
	if(x==1&&y==1)
		return a*a*a%k;
	else{
		long long s=f(x/2,x%2)%k;
		long long s1=pow(s,2);
		if(y==1)
			return (s1%k)*(a%k)%k;
		else return s1%k;
	}
}
int main()
{
	cin>>a>>n>>k;
	cout<<a<<"^"<<n<<" mod "<<k<<"=";
	a%=k;
	cout<<f(n/2,n%2);
}

后两个点错了 输入

156431 154941233 467107951

输出

156431^154941233 mod 467107951=216052475

2024/6/5 21:09
加载中...