题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1395
这里可以有一个结论,大于等于1的奇数都有2^t mod n=1
代码如下:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <string>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
#include <queue>
using namespace std;
/*
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
*/
int main()
{
int n;
while(cin>>n)
{
if(n == 1 || n % 2 == 0)
{
printf("2^? mod %d = 1\n", n);
continue;
}
int a=2,sum=1;
while(a!=1)
{
a=(a<<1)%n;
sum++;
}
printf("2^%d mod %d = 1\n",sum,n);
}
return 520;
}