ural 1110,快速幂

时间:2022-05-07 06:32:12

题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1110

题意:   X^N % M = Y,X=[0,M-1];没有输出-1;

#include <stdio.h>
#include <vector> using namespace std; int qmod(int a,int x,int mod)
{
int ans = ;
for(;x;x>>=,a = a*a%mod)
if(x&)
ans = ans*a%mod;
return ans;
} int main()
{
int n,m,y;
vector<int> vaj;
scanf("%d%d%d",&n,&m,&y);
for(int i=; i<m; i++)
{
if(qmod(i,n,m)==y)
vaj.push_back(i);
} if(vaj.size())
{
for(int i=; i<vaj.size()-; i++)
printf("%d ",vaj[i]);
printf("%d\n",vaj[vaj.size()-]);
}
else puts("-1"); return ;
}