题目:Div Times Mod
思路:
枚举一个数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 100000int 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;
}