Consider circular track with n points marked as 1, 2, …n. A person is initially placed on point k. The person moves m > 0, slot forward (in circular way) in each step. Find the minimum number of steps required so that the person reaches initial point k.
Input : n = 9, k = 2, m = 6 Output : 3 Explanation : Sequence of moves is 2 => 8 => 5 => 2 Input : n = 6, k = 3, m = 2 Output : 3
Naive Approach : Initialize a counter ‘i’ with ‘k’ and ‘count’ = 0. Further for each iteration increment ‘count’ add ‘m’ to ‘i’. Take its modulus with n i.e. i=((i+m)%n), if i > n. If i becomes equal to k then count will be our answer.
Time complexity: O(n).
Efficient Approach: We find GCD(n, m) and then divide n by GCD(n, m). That will be our answer. This can be explained as:
Think of n and m as per question now as we know that gcd(n, m) must divide n and the quotient tells us that after how many successive jumps(addition) of m numbers from starting position(say 0) we again reach the starting position.
Note: In circular arrangement of n numbers nth and 0th position are same.
Time Complexity: O(log(n))
This article is contributed by Shivam Pradhan (anuj_charm). 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 write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
- Probability of reaching a point with 2 or 3 steps at a time
- Number of steps required to reach point (x,y) from (0,0) using zig-zag way
- Steps required to visit M points in order on a circular ring of N points
- Count minimum steps to get the given desired array
- Generate array with minimum sum which can be deleted in P steps
- Minimum steps to color the tree with given colors
- Find the minimum number of steps to reach M from N
- Minimum steps needed to cover a sequence of points on an infinite grid
- Minimum rotations to unlock a circular lock
- Minimum cost to reach a point N from 0 with two different operations allowed
- Find the minimum sum of distance to A and B from any integer point in a ring of size N
- Minimum time to reach a point with +t and -t moves at time t
- The Knight's tour problem | Backtracking-1
- Reflection of a point at 180 degree rotation of another point
- Total nodes traversed in Euler Tour Tree