假设我们有两个数字A和B。现在在每个运算中,我们可以选择任意一个数字并将其递增1或递减1。我们必须找到所需的最小操作数,以使最大公约数最大在A和B之间不是1。
因此,如果输入像A = 8,B = 9,那么输出将是1,因为我们可以选择9然后将其增加到10,所以8和10不是互质的。
为了解决这个问题,我们将按照以下步骤操作:如果a和b的gcd不等于1,则返回0
如果a是偶数或b是偶数,则返回1
除此以外,返回2
返回1
如果a + 1和b的gcd不等于1或a-1和b的gcd不等于1或a和b-1的gcd不等于1或a和b + 1的gcd不相同为1
除此以外,
让我们看一下下面的实现以获得更好的理解
示例from math import gcd
class Solution:
def solve(self, a, b):
if gcd(a, b) != 1:
return 0
if a % 2 == 0 or b % 2 == 0:
return 1
else:
if (gcd(a + 1, b) != 1 or gcd(a - 1, b) != 1 or gcd(a, b - 1) != 1 or gcd(a, b + 1) != 1):
return 1
else:
return 2
ob = Solution()A = 8
B = 9
print(ob.solve(A, B))
输入项8,9
输出结果1