1. 程式人生 > >Codeforces Round #528 (Div. 2) B. Div Times Mod 暴力

Codeforces Round #528 (Div. 2) B. Div Times Mod 暴力

題解

題目大意 給N和K 根據公式(x div k) * (x mod k) = n問最小的x

先用i列舉x % k的值 在n能被i整除的情況下 n / i=x / k
則n / i * k為滿足x / k最小的x 加上i則為真實的x 答案取最小

AC程式碼

#include <stdio.h>
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

const int INF = 0x3f3f3f3f;

int main()
{
#ifdef LOCAL
	//freopen("C:/input.txt", "r", stdin);
#endif int N, K; cin >> N >> K; int ans = INF; for (int i = 1; i < K; i++) //x mod k if (N % i == 0) { int x = (N / i) * K; //滿足x / k最小的x for (int j = 0; j < K; j++) if ((x + j) % K == i) //滿足餘數 ans = min(ans, x + j); } cout << ans << endl; return 0; }