版权声明:欢迎转载欢迎评论! https://blog.csdn.net/rabbit_ZAR/article/details/85231896
思路:
枚举一个数i ∈ [1,n) 使得 n / i ==0 ,表示 x mod k == i,且x / k == n / i 。
然后 x 可以算出来,即 x=( n / i ) * k + i 。
输出x的最小值就好 。
代码:
#include<bits/stdc++.h>
using namespace std;
#define read(x) scanf("%d",&x)
#define maxn 100000
int n,k;
int main() {
read(n),read(k);
int ans=1e9;
for(int i=1;i<k;i++) {
if(n/i>0&&n%i==0) {
int y=n/i;
int x=y*k+i;
ans=min(ans,x);
}
}
cout<<ans<<endl;
return 0;
}