题解 CF1360D 【Buying Shovels】
rui_er
2020-05-25 13:37:16
这一题数据不大,想到暴力 $\sqrt{n}$ 求出 $k$ 以内的最大因数,然后输出 $n\div k$ 即可。
代码:
```cpp
//By: Luogu@rui_er(122461)
#include <bits/stdc++.h>
using namespace std;
int T, n, k;
int main() {
scanf("%d", &T);
while(T--) {
scanf("%d%d", &n, &k);
int ma = 1;
for(int i=sqrt(n);i>=1;i--) {
// printf("%d %d %d %d\n", i, n%i, n/i, k);
if(n % i != 0) continue;
int a = i, b = n / i;
if(a <= k) ma = max(ma, a);
if(b <= k) ma = max(ma, b);
}
printf("%d\n", n/ma);
}
return 0;
}
```