1110. Power
Time limit: 0.5 secondMemory limit: 64 MB
You are given the whole numbersN,MandY. Write a program that will find all whole numbersXin the interval [0,M 1] such thatXNmodM=Y.
Input
The input contains a single line withN,MandY(0<N<999, 1<M<999, 0<Y<999) separated with one space.
Output
Output all numbersXseparated with space on one line. The numbers must be written in ascending order. If no such numbers exist then output 1.
Sample
inputoutput
2 6 42 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;}
,只知道心痛得滴血,都只为你。