​题目传送门​


题目描述

有三个人,2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_算法,其中 2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_取值_022020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_java_03 共享了一个神秘的数字 2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_数据_04,已知 2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_算法_05
现在 2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_取值_022020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_算法_07 说:“2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_数据_04 的值等于 2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_java_09”。
2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_算法_07 不太信任 2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_取值_02,于是想向 2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_java_03 确认一下 2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_数据_04 是否真的等于 2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_java_092020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_java_03 虽然不想直接把 2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_数据_04 的值告诉 2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_算法_07,但是 2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_java_03 允许 2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_算法_07 给出一个正整数 2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_算法_20(注意 2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_算法_20 可以大于 2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_算法_22),然后 2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_java_03 会回答 2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_取值_24
现在给出 2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_取值_25,你需要帮助 2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_算法_07 决定这样的 2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_算法_20 的取值,使得 2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_算法_07 一定可以通过 2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_java_03 的回答来判断 2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_取值_02 有没有撒谎。如果这样的 2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_算法_20


输入描述:

输入第一行是一个整数 2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_算法_32
对于每组数据,输入一行两个整数 2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_算法_33


输出描述:

对于每组数据,输出一行一个整数,表示答案。如果满足条件的 2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_算法_20 不存在,则输出 2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_java_35


输入

3
10 1
10 4
10 7


输出

210
8
7


题解

  • 考虑 yy 的取值:
  1. 2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_java_36必须是2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_数据_37的倍数,否则无法区分2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_java_382020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_数据_37
  2. 对于2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_算法_40的每一个质数2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_算法_412020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_数据_42必须是2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_算法_41的倍数,否则无法区分2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_数据_372020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_取值_45
  • 因此设2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_算法_462020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_数据_47中的所有质数,那么答案就是2020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_取值_482020 CCPC Wannafly Winter Camp Day1 Div.1&2——最大公约数【数学】_算法_49

AC-Code

import java.math.BigInteger;
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int T = cin.nextInt();
while(T-- > 0) {
int n = cin.nextInt(), k = cin.nextInt();
BigInteger t = BigInteger.valueOf(k);
for(int i = 2; i <= n / k; ++i) {
Boolean f = true;
for(int j = 2; j * j <= i; ++j) {
if(i % j == 0) f = false;
}
if(f) t = t.multiply(BigInteger.valueOf(i));
}
System.out.println(t);
}
}
}