Check whether all the rotations of a given number is greater than or equal to the given number or not

Given an integer x, the task is to find if every k-cycle shift on the element produces a number greater than or equal to the same element.
A k-cyclic shift of an integer x is a function that removes the last k digits of x and inserts them in its beginning.
For example, the k-cyclic shifts of 123 are 312 for k=1 and 231 for k=2. Print Yes if the given condition is satisfied else print No.


Input: x = 123
Output : Yes
The k-cyclic shifts of 123 are 312 for k=1 and 231 for k=2.
Both 312 and 231 are greater than 123.

Input: 2214
Output: No
The k-cyclic shift of 2214 when k=2 is 1422 which is smaller than 2214

Approach: Simply find all the possible k cyclic shifts of the number and check if all are greater than the given number or not.

Below is the implementation of the above approach:





# Python3 implementation of the approach
def CheckKCycles(n, s):
    ff = True
    for i in range(1, n):
        # Splitting the number at index i 
        # and adding to the front
        x = int(s[i:] + s[0:i])
        # Checking if the value is greater than 
        # or equal to the given value
        if (x >= int(s)):
        ff = False
    if (ff):
n = 3
s = "123"
CheckKCycles(n, s)




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using or mail your article to 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.