对于这道题,我们可以退出公式(2^(n-1)+1)%n
ACD代码如下:再次小心LL的问题
#include"iostream"
#include"cstdio"
#include"cstdlib"
using namespace std;
long long quickmod(long long a,long long b,long long c)
{
long long ans=1;
while(b>0)
{
if(b%2==1) ans=(ans*a)%c;
b/=2;
a=(a*a)%c;
}
return (ans+1)%c;
}
int main()
{
int n;
while(scanf("%d",&n)==1&&n!=0)
{
cout<<quickmod(2,n-1,n)<<endl;
}
return 0;
}