Given an integer num
, find the closest two integers in absolute difference whose product equals num + 1
or num + 2
.
Return the two integers in any order.
Example 1:
Input: num = 8
Output: [3,3]
Explanation: For num + 1 = 9, the closest divisors are 3 & 3, for num + 2 = 10, the closest divisors are 2 & 5, hence 3 & 3 is chosen.
Example 2:
Input: num = 123
Output: [5,25]
Example 3:
Input: num = 999
Output: [40,25]
Constraints:
-
1 <= num <= 10^9
SOLUTION:
class Solution:
def closestDivisors(self, num: int) -> List[int]:
closest = (1, num + 1)
for x in [num + 1, num + 2]:
curr = (1, x)
i = 2
while i * i <= x:
if x % i == 0:
curr = (i, x // i)
if curr[1] - curr[0] < closest[1] - closest[0]:
closest = curr
i += 1
return closest
Top comments (0)