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;
}
posted @ 2022-12-25 14:51  Ggsddu_zzy  阅读(14)  评论(0编辑  收藏  举报