题意是:求出满足2^x mod n = 1的x。
这样的x叫做2模n的次数。我使用余数的性质递推的,应该还有好的算法。
#include"stdio.h"
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
if(n==1||n%2==0)
{ printf("2^? mod %d = 1\n",n);continue;}
int ans,k=1;long long s=2;
ans=s%n;
while(ans!=1)
{
s=ans*2;
ans=s%n;
k++;
}
printf("2^%d mod %d = 1\n",k,n);
}
return 0;
}