题解 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;
}

浙公网安备 33010602011771号