We are given two numbers A and B, we need to write a program to determine if A and B can be reached starting from (1, 1) following the given steps. Start from (1, 1) and at every step choose a random number K and multiply K to any one of the two numbers obtained in the previous step and K2 to the other number.
Input : A = 3, B = 9 Output : yes Explanation: Starting from A = 1 and B = 1. We choose k=3 and multiply 3 with the first number to get A=3 and multiply k2=9 to the second- number to get B=9. Input : A = 60, B = 450 Output : yes Explanation : Starting from A = 1 and B = 1, Step 1: multiply k=3 and k2 to get 3 and 9 Step 2: Multiply k=5 and k2 = 25 to get to 15 and 225 Step 3: Multiply k2=4 and k=2 to get to A=60 and B=450
The idea to solve this problem is to observe closely that at each step we are multiplying k and k2 to the numbers. So if A and B can be reached, it will have k^3 at every step as factors in A*B. In simple words, if the number A*B is a perfect cube and it divides A and B both, only then the number can be reached starting from 1 and 1 by performing given steps.
Below is the implementation of above idea:
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.
- Minimum steps to reach N from 1 by multiplying each step by 2, 3, 4 or 5
- Count ways to reach the Nth stair using multiple 1 or 2 steps and a single step 3
- Minimum step to reach one
- Find the number of ways to reach Kth step in stair case
- Minimize steps to reach K from 0 by adding 1 or doubling at each step
- Steps to reduce N to zero by subtracting its most significant digit at every step
- Check if elements of array can be made equal by multiplying given prime numbers
- Find the number of consecutive zero at the end after multiplying n numbers
- Maximize the sum of array by multiplying prefix of array with -1
- Minimum operations required to convert X to Y by multiplying X with the given co-primes
- Find Kth number from sorted array formed by multiplying any two numbers in the array
- Check if N can be obtained from 1 by repetitively multiplying by 10 or 20
- Min operations to reduce N to 1 by multiplying by A or dividing by B
- Min operations to reduce N by multiplying by any number or taking square root
- Convert 1 into X in min steps by multiplying with 2 or 3 or by adding 1
- Maximum subsequence sum possible by multiplying each element by its index
- Check if it is possible to create a matrix such that every row has A 1s and every column has B 1s
- Count the pairs in an array such that the difference between them and their indices is equal
- Make A, B and C equal by adding total value N to them
- Largest possible value of M not exceeding N having equal Bitwise OR and XOR between them
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.