# 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.

Examples:

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

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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:

## C++

 `// CPP implementation of the approach ` `#include ` `using` `namespace` `std; ` ` `  `void` `CheckKCycles(``int` `n, string s)  ` `{ ` `    ``bool` `ff = ``true``; ` `    ``int` `x = 0; ` `    ``for` `(``int` `i = 1; i < n; i++)  ` `    ``{ ` ` `  `        ``// Splitting the number at index i  ` `        ``// and adding to the front  ` `        ``x = (s.substr(i) + s.substr(0, i)).length(); ` ` `  `        ``// Checking if the value is greater than  ` `        ``// or equal to the given value  ` `        ``if` `(x >= s.length())  ` `        ``{ ` `            ``continue``; ` `        ``} ` `        ``ff = ``false``; ` `        ``break``; ` `    ``} ` `    ``if` `(ff)  ` `    ``{ ` `        ``cout << (``"Yes"``); ` `    ``} ` `    ``else` `    ``{ ` `        ``cout << (``"No"``); ` `    ``} ` `} ` ` `  `// Driver code ` `int` `main()  ` `{ ` `    ``int` `n = 3; ` `    ``string s = ``"123"``; ` `    ``CheckKCycles(n, s); ` `    ``return` `0; ` `} ` ` `  `/* This code contributed by Rajput-Ji */`

## Java

 `// Java implementation of the approach ` `class` `GFG  ` `{ ` ` `  `    ``static` `void` `CheckKCycles(``int` `n, String s)  ` `    ``{ ` `        ``boolean` `ff = ``true``; ` `        ``int` `x = ``0``; ` `        ``for` `(``int` `i = ``1``; i < n; i++)  ` `        ``{ ` ` `  `            ``// Splitting the number at index i  ` `            ``// and adding to the front  ` `            ``x = (s.substring(i) + s.substring(``0``, i)).length(); ` ` `  `            ``// Checking if the value is greater than  ` `            ``// or equal to the given value  ` `            ``if` `(x >= s.length())  ` `            ``{ ` `                ``continue``; ` `            ``} ` `            ``ff = ``false``; ` `            ``break``; ` `        ``} ` `        ``if` `(ff)  ` `        ``{ ` `            ``System.out.println(``"Yes"``); ` `        ``} ` `        ``else`  `        ``{ ` `            ``System.out.println(``"No"``); ` `        ``} ` ` `  `    ``} ` ` `  `    ``// Driver code ` `    ``public` `static` `void` `main(String[] args)  ` `    ``{ ` `        ``int` `n = ``3``; ` `        ``String s = ``"123"``; ` `        ``CheckKCycles(n, s); ` `    ``} ` `} ` ` `  `/* This code contributed by PrinciRaj1992 */`

## Python

 `# 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)): ` `            ``continue` `        ``ff ``=` `False` `        ``break` `    ``if` `(ff): ` `        ``print``(``"Yes"``) ` `    ``else``: ` `        ``print``(``"No"``) ` ` `  `n ``=` `3` `s ``=` `"123"` `CheckKCycles(n, s) `

## C#

 `// C# implementation of the approach ` `using` `System; ` ` `  `class` `GFG  ` `{ ` ` `  `    ``static` `void` `CheckKCycles(``int` `n, String s)  ` `    ``{ ` `        ``bool` `ff = ``true``; ` `        ``int` `x = 0; ` `        ``for` `(``int` `i = 1; i < n; i++)  ` `        ``{ ` ` `  `            ``// Splitting the number at index i  ` `            ``// and adding to the front  ` `            ``x = (s.Substring(i) + s.Substring(0, i)).Length; ` ` `  `            ``// Checking if the value is greater than  ` `            ``// or equal to the given value  ` `            ``if` `(x >= s.Length)  ` `            ``{ ` `                ``continue``; ` `            ``} ` `            ``ff = ``false``; ` `            ``break``; ` `        ``} ` `        ``if` `(ff)  ` `        ``{ ` `            ``Console.WriteLine(``"Yes"``); ` `        ``} ` `        ``else` `        ``{ ` `            ``Console.WriteLine(``"No"``); ` `        ``} ` ` `  `    ``} ` ` `  `    ``// Driver code ` `    ``public` `static` `void` `Main(String[] args)  ` `    ``{ ` `        ``int` `n = 3; ` `        ``String s = ``"123"``; ` `        ``CheckKCycles(n, s); ` `    ``} ` `} ` ` `  `// This code has been contributed by 29AjayKumar `

## PHP

 `= ``strlen``(``\$s``))  ` `        ``{ ` `            ``continue``; ` `        ``} ` `        ``\$ff` `= false; ` `        ``break``; ` `    ``} ` `    ``if` `(``\$ff``)  ` `    ``{ ` `        ``print``(``"Yes"``); ` `    ``} ` `    ``else` `    ``{ ` `        ``print``(``"No"``); ` `    ``} ` `} ` ` `  `// Driver code ` `\$n` `= 3; ` `\$s` `= ``"123"``; ` `CheckKCycles(``\$n``, ``\$s``); ` ` `  `// This code contributed by mits  ` `?> `

Output:

```Yes
```

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 contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.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.