题解 CF1549A 【Gregor and Cryptography】

CF1549A Gregor and Cryptography

题目大意:

给定质数 \(P (5\leq P \leq 10^9)\) ,找到两个数 \(a,b\) \((2 \leq a < b \leq P)\) 使得 \(P\,\text{mod}\,a=P\,\text{mod}\,b\)

solution:

我是先枚举的余数,发现余数等于 \(1\) 时最好满足。大于 \(2\) 的质数一定是个奇数,所以对于 \(P\)\(2\) 肯定等于 \(1\) ,模 \(P-1\) 也等于 \(1\) 。所以输出 \(2\)\(P-1\) 就好了。

代码
#include<cstdio>
using namespace std;
int main(){
	int T; scanf("%d",&T);
	while(T--){
		int p; scanf("%d",&p);
		printf("2 %d\n",p-1);
	}
	return 0;
} 

End

posted @ 2021-08-07 17:28  Mr_think  阅读(43)  评论(0)    收藏  举报