AC题解

麦睿生  •  3个月前


#include<bits/stdc++.h>
using namespace std;
long long s(long long n,long long m)
{
	if(!m)return 1;
	if(m==1)return 2;
	long long ans;
	ans=s(n,m/2)%n;
	ans=ans*ans%n;
	if(m%2==1)ans=ans*2%n;
	return ans;
}
int main()
{
	long long n,ans;
	while(scanf("%I64d",&n)&&n)
	{
		ans=(s(n,n-1)+1)%n;
		printf("%lld\n",ans);
	}
	return 0;
}

评论: