#include<iostream>
using namespace std;
int main()
{
int n;
int x;
int i;
long long t;
int m;
while(cin>>n) //n与2必为互质!!!!!
{
t=1;
m=n;
x=0;
if(n%2==0||n==1)
{
cout<<"2^? mod "<<n<<" = 1"<<endl;
}
else
{
for(i=1;;i++)
{
t=t*2%m; //!!!!!余数乘2对n取余
if(t==1)
{
x=i;
break;
}
}
if(x)
{
cout<<"2^"<<x<<" mod "<<n<<" = 1"<<endl;
}
else cout<<"2^? mod "<<n<<" = 1"<<endl;
}
}
return 0;
}
C++--ACM之杭电OJ--1395 2^x mod n = 1
最新推荐文章于 2020-07-28 17:11:17 发布