题目链接: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 ",vaj[vaj.size()-1]); } else puts("-1"); return 0; }