1110. Power
Time Limit: 0.5 second
Memory Limit: 16 MB
Memory Limit: 16 MB
You are given the whole numbers
N,
M 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
N,
M 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 |
#include <iostream>
using namespace std;
int main()
{
int n, m, y, x, i, ans, k = 0;
cin>>n>>m>>y;
for (x=0; x<m; x++)
{
ans = x % m;
for (i=1; i<n; i++)
{
ans *= x;
ans %= m;
}
if (ans == y)
{
if (k)
cout<<" ";
cout<<x;
k = 1;
}
}
if (!k)
cout<<-1;
cout<<endl;
}