码迷,mamicode.com
首页 > 其他好文 > 详细

URAL 1110. Power

时间:2015-03-09 12:52:22      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:

1110. Power

Time limit: 0.5 second
Memory limit: 64 MB
You are given the whole numbers NM and Y. Write a program that will find all whole numbers X in the interval [0, M ? 1] such that XN mod M = Y.

Input

The input contains a single line with NM and Y (0 < N < 999, 1 < M < 999, 0 < Y < 999) separated with one space.

Output

Output all numbers X separated with space on one line. The numbers must be written in ascending order. If no such numbers exist then output ?1.

Sample

input output
2 6 4
2 4




解析:直接很裸的幂取模运算。



AC代码:

#include <cstdio>

int mod_pow(int x, int n, int m){
    int ans = 1;
    while(n--){
        ans = ans * x % m;
    }
    return ans;
}

int main(){
    int n, m, y, flag;
    while(scanf("%d%d%d", &n, &m, &y)==3){
        flag = 0;
        for(int i=0; i<m; i++){
            if(mod_pow(i, n, m) == y){
                flag = 1;
                printf("%d ", i);
            }
        }
        if(flag) puts("");
        else puts("-1");
    }
    return 0;
}



URAL 1110. Power

标签:

原文地址:http://blog.csdn.net/u013446688/article/details/44153127

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!