Given an integer N, find and show the number of pairs which satisfies the following conditions:
- Square of distance between those two numbers is equal to the LCM of those two numbers.
- The GCD of those two numbers is equal to the product of two consecutive integers.
- Both numbers in the pair should be less than or equal to N.
NOTE: Only those pairs should be displayed which follows both the above conditions simultaneously and those numbers must be less than or equal to N.
Input: 10 Output: No. of pairs = 1 Pair no. 1 --> (2, 4) Input: 500 Output: No. of pairs = 7 Pair no. 1 --> (2, 4) Pair no. 2 --> (12, 18) Pair no. 3 --> (36, 48) Pair no. 4 --> (80, 100) Pair no. 5 --> (150, 180) Pair no. 6 --> (252, 294) Pair no. 7 --> (392, 448)
The tables shown below will give a clear view of what is to be found :
Above tables show GCD formed by the product of two consecutive numbers and its corresponding multiples in which UNIQUE PAIR exists corresponding to each value. Green entries in each row form a unique pair for corresponding GCD.
Note: In the above tables,
- For 1st entry, GCD=2, 1st and the 2nd multiple of 2 form the Unique Pair, (2, 4)
- Similarly, for the 2nd entry, GCD=6, 2nd and the 3rd multiple of 6 form the Unique Pair, (12, 18)
- Similarly, moving on, for Zth entry, i.e for GCD = Z*(Z+1), it is clear that the unique pair will comprise of Zth and (Z+1)th multiple of GCD = Z*(Z+1). Now, Zth multiple of GCD is Z * (Z*(Z+1)) and (Z+1)th multiple of GCD will be (Z + 1) * (Z*(Z+1)).
- And as the limit is N, so the second number in the unique pair must be less than or equal to the N. So, (Z + 1) * (Z*(Z+1)) <= N. Simplifying it further, the desired relation is derived Z3 + (2*Z2) + Z <=N
This forms a pattern and from the mathematical calculation, it is derived that for a given N, the total number of such unique pairs (say, Z) will follow a mathematical relation shown below:
Z3 + (2*Z2) + Z <= N
Below is the required implementation:
# Python3 program for finding the required pairs
# Finding the number of unique pairs
i = 1;
# Using the derived formula
while ((i * i * i) + (2 * i * i) + i <= N): i += 1; return (i - 1); # Printing the unique pairs def print_pairs(pairs): i = 1; mul = 0; for i in range(1, pairs + 1): mul = i * (i + 1); print("Pair no." , i, " --> (“, (mul * i),
“, “, mul * (i + 1), “)”);
# Driver Code
N = 500;
i = 1;
pairs = No_Of_Pairs(N);
print(“No. of pairs = “, pairs);
# This code is contributed
# by mits
No. of pairs = 7 Pair no. 1 --> (2, 4) Pair no. 2 --> (12, 18) Pair no. 3 --> (36, 48) Pair no. 4 --> (80, 100) Pair no. 5 --> (150, 180) Pair no. 6 --> (252, 294) Pair no. 7 --> (392, 448)
- All pairs whose xor gives unique prime
- Pairs with GCD equal to one in the given range
- Count pairs with set bits sum equal to K
- Count pairs from two arrays having sum equal to K
- Count pairs of natural numbers with GCD equal to given number
- All possible co-prime distinct element pairs within a range [L, R]
- Element equal to the sum of all the remaining elements
- Find ways an Integer can be expressed as sum of n-th power of unique natural numbers
- Check if the array has an element which is equal to sum of all the remaining elements
- Check if the array has an element which is equal to product of remaining elements
- Find the maximum possible value of a[i] % a[j] over all pairs of i and j
- Given GCD G and LCM L, find number of possible pairs (a, b)
- Find Cube Pairs | Set 2 (A n^(1/3) Solution)
- Find Cube Pairs | Set 1 (A n^(2/3) Solution)
- Find number of magical pairs of string of length L
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.