﻿ Java - Check a number is a cyclic or not

# Java: Check a number is a cyclic or not

## Java Numbers: Exercise-19 with Solution

Write a Java program to check if a number is cyclic or not.

A cyclic number is an integer in which cyclic permutations of the digits are successive multiples of the number. The most widely known is 142857:
142857 × 1 = 142857
142857 × 2 = 285714
142857 × 3 = 428571
142857 × 4 = 571428
142857 × 5 = 714285
142857 × 6 = 857142
Input Data:
Input a number: 142857

Pictorial Presentation: Sample Solution:

Java Code:

``````import java.util.Scanner;
import java.math.BigInteger;
public class Example19 {

public static void main( String args[] ){
Scanner sc = new Scanner( System.in );
System.out.print("Input a number: ");
String strnum = sc.nextLine().trim();
BigInteger n = new BigInteger(strnum);
int len = strnum.length()+1;
String str = String.valueOf(len);
BigInteger n1 = new BigInteger(str);
StringBuilder buf = new StringBuilder();
for(int i = 0 ; i < (len-1); i++) {
buf.append('9');
}
BigInteger total = new BigInteger(buf.toString());
if(n.multiply(n1).equals(total)) {
System.out.println("It is a cyclic number.");
}
else {
System.out.println("Not a cyclic number.");
}
}
}
```
```

Sample Output:

```Input a number: 142857
It is a cyclic number.
```

Flowchart: Java Code Editor:

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.

﻿

## Java: Tips of the Day

IsPowerOfTwo

Checks if a value is positive power of two.

To understand how it works let's assume we made a call IsPowerOfTwo(4).

As value is greater than 0, so right side of the && operator will be evaluated.

The result of (~value + 1) is equal to value itself. ~100 + 001 => 011 + 001 => 100. This is equal to value.

The result of (value & value) is value. 100 & 100 => 100.

This will value the expression to true as value is equal to value.

```public static boolean isPowerOfTwo(final int value) {
return value > 0 && ((value & (~value + 1)) == value);
}
```

Ref: https://bit.ly/3sA5d4I

We are closing our Disqus commenting system for some maintenanace issues. You may write to us at reach[at]yahoo[dot]com or visit us at Facebook