Given two positive numbers x and y. Find the maximum valued integer a such that:
a divides x i.e. x % a = 0
a and y are co-prime i.e. gcd(a, y) = 1
Input : x = 15
y = 3
Output : a = 5
Explanation: 5 is the max integer
which satisfies both the conditions.
15 % 5 =0
gcd(5, 3) = 1
Hence, output is 5.
Input : x = 14
y = 28
Output : a = 1
Explanation: 14 % 1 =0
gcd(1, 28) = 1
Hence, output is 1.
Approach: Here, first we will remove the common factors of x and y from x by finding the greatest common divisor (gcd) of x and y and dividing x with that gcd. Mathematically:
x = x / gcd(x, y) —— STEP1
Now, we repeat STEP1 till we get gcd(x, y) = 1. At last, we return a = x
Step 1: Define a function named gcd to find gcd of two numbers a and b. Step 2: If a or b is equal to 0, return 0. If a is equal to b, return a. Step 3: If a is greater than b, return gcd(a-b, b). Step 4: If b is greater than a return gcd(a b-a). Step 5: Define a function named cpFact to find the largest coprime divisor of two numbers x and y. Step 6: While gcd(x, y) is not equal to 1, divide x by gcd(x,y). Step 7: Return x as the largest coprime divisor.
below is the code implementation of the above approach:
Please Login to comment...