Cuberoot This 题解
题目大意
求满足 \(x^3\bmod p=a\) 且 \(x<p\) 的数 \(x\),升序输出。
解题思路
在 \(0\) 到 \(p-1\) 的范围内,查找满足条件的 \(x\);
值得注意的是,输出要留意:最后一个 \(x\) 后不能有空格;
要解决这个问题,需要 \(flag\) 来标记一下:
如果 \(flag=0\) ,或者说是第一个输出的 \(x\),那么在 \(x\) 之前不用输出空格,然后把 \(flag\) 标记成 \(1\);
如果不是,那就先输出空格,再输出 \(x\),这样就能保证最后一个 \(x\) 后没有空格。
代码
注意有多组数据!
#include <bits/stdc++.h>
#define ri register int
using namespace std;
int a,p;
int main() {
while (cin>>a>>p) {
bool flag=0;
for (ri x=0;x<=p-1;x++) {
int sum=pow(x,3);
if (sum%p==a) {
if (!flag) { cout<<x,flag=1; }
else cout<<" "<<x;
}
}
cout<<'\n';
}
return 0;
}