Codeforces 1087B - Div Times Mod

ACM 同时被 3 个专栏收录
140 篇文章 0 订阅
80 篇文章 0 订阅
270 篇文章 0 订阅

Codeforces 1087B - Div Times Mod

题解链接

https://lucien.ink


题目链接

http://codeforces.com/contest/1087/problem/B


题意

给你一个 n n n k k k ,找到一个最小的 x x x 使得 ⌊ x ÷ k ⌋ ⋅ ( x   m o d   k ) = n \lfloor x \div k \rfloor \cdot (x\ mod\ k) = n x÷k(x mod k)=n 成立。


思路

x = a ⋅ k + b   ( b &lt; k ) x = a \cdot k + b\ (b &lt; k) x=ak+b (b<k),枚举一下 b b b 即可。


实现

https://pasteme.cn/2802

#include <bits/stdc++.h>
typedef long long ll;
int main() {
    ll n, k, ans = 0x3f3f3f3f3f3f3f3f;
    std::cin >> n >> k;
    for (ll b = k - 1; b >= 1; b--) {
        if (n % b == 0) {
            ll a = n / b;
            ans = std::min(ans, a * k + b);
        }
    }
    std::printf("%lld\n", ans);
    return 0;
}

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值