Syntax error Program to count minimum number of operations required to make numbers non coprime in Python?

Program to count minimum number of operations required to make numbers non coprime in Python?



Suppose we have two numbers A and B. Now in each operation, we can select any one of the number and increment it by 1 or decrement it by 1. We have to find the minimum number of operations we need such that the greatest common divisor between A and B is not 1.

So, if the input is like A = 8, B = 9, then the output will be 1, as we can select 9 then increase it to 10, so 8 and 10 are not coprime.

To solve this, we will follow these steps:

  • if gcd of a and b is not same as 1, then

    • return 0

  • if a is even or b is even, then

    • return 1

  • otherwise,

    • if gcd of a + 1 and b is not same as 1 or gcd of a - 1 and b is not same as 1 or gcd of a and b - 1 is not same as 1 or gcd of a and b + 1 is not same as 1, then

      • return 1

    • otherwise,

      • return 2

Let us see the following implementation to get better understanding

Example

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))

Input

8,9

Output

1
Updated on: 2020-11-10T08:57:53+05:30

326 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements