1.根据题意,我们就是求a的一个约数x ,使得∣x−b∣ 最小化。所以求一下所有a的所有约数,枚举算一下.
2.由于a 很大,我们需要一个O(a) 的计算约数的算法。利用<所有约数都以a 对应分布>这一性质,我们只需要枚举[1,a] 内的数,即可得到a的所有约数.
3.注意结果可能很大,会爆int
感谢群友XXX的真题投稿
塔子哥是一个有着无限冒险精神的年轻勇士,他在冒险中遇到了一只凶猛的巨龙,这只巨龙是这个领域中的最终Boss,只有击败了它,他才能获得传说中的宝藏。
巨龙有 a 点血量,而塔子哥的每次攻击可以使其减少 b 点血量。
然而,塔子哥希望在最后一击时完美击杀巨龙,这意味着他必须用最后一击将巨龙的血量降至零,而不能超过。
为了达到这个目标,塔子哥可以花费代价增加或减少自己每次攻击造成的伤害。然而,这种代价只能在攻击巨龙之前花费,一旦塔子哥开始攻击巨龙,他就无法再进行任何修改。现在,塔子哥想知道,为了保证最后一击完美击杀巨龙,他需要最少花费多少代价来修改自己的攻击伤害。
请注意,塔子哥只有战前修改自己的伤害需要花费代价,攻击巨龙并不需要花费代价。
输入为两个整数 a 和 b 。( 1≤a,b≤1012)
一个整数,代表塔子哥花费的最小代价。
输入
11 1
输出
0
输入
11 3
输出
2
b:3→1 , 修改2次
本题属于以下题库,请选择所需题库进行购买