#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <algorithm>
#include <cmath>
using namespace std;
typedef long long ll;
ll pow(ll a,ll b,ll r)
{
ll ans=1,buff=a;
while(b)
{
if(b&1) ans = (ans*buff)%r;
buff=(buff*buff)%r;
b>>=1;
}
return (ans)%r;
}
main()
{
int x,i,n;
while(scanf("%d",&n)!=EOF)
{
if(!(n&1)||n<=1)
printf("2^? mod %d = 1\n",n);
else
{
for(i=2;;i++)
{
if(pow(2,i,n)==1)
{printf("2^%d mod %d = 1\n",i,n);
break;
}
}
}
}
}
HDU 1395(快速幂模板)
最新推荐文章于 2021-08-03 17:57:28 发布