ural 1110,快速幂

题目链接: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;
}
原文地址:https://www.cnblogs.com/TreeDream/p/5886331.html