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 email@example.com. 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
- Minimum number of moves to reach N starting from (1, 1)
- 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 required to reduce all the elements of the array to zero
- Minimum steps to make the product of the array equal to 1
- 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