一、题面
二、分析
一个简单的数学题目,这里首先要把x分解了看
$x = kd + c$
这样原问题中的n就变成了
$n = dc$
上面这个式子中,c因为是x除k取余得到的,那么可以肯定
$c < k$
有了这个式子,就可以直接暴力去试满足条件的c,并且最小的d就可以满足x的最小值。
三、AC代码
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include <bits/stdc++.h> 2 3 using namespace std; 4 #define INF 1e6+4 5 6 int main() 7 { 8 int K, N; 9 //freopen("input.txt", "r", stdin); 10 while(scanf("%d %d", &N, &K)!=EOF) 11 { 12 int d, ans = INF; 13 for(int c = 1; c < K; c++) 14 { 15 if(N%c == 0) 16 { 17 d = N/c; 18 ans = min(ans, d); 19 } 20 } 21 ans = ans*K + N/d; 22 printf("%d ", ans); 23 } 24 return 0; 25 }