您的位置:首页 > 其它

ural 1110,快速幂

2016-09-19 19:27 253 查看
题目链接: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 = 1;
for(;x;x>>=1,a = a*a%mod)
if(x&1)
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=0; i<m; i++)
{
if(qmod(i,n,m)==y)
vaj.push_back(i);
}

if(vaj.size())
{
for(int i=0; i<vaj.size()-1; i++)
printf("%d ",vaj[i]);
printf("%d\n",vaj[vaj.size()-1]);
}
else puts("-1");

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: