# Java: Check if a number is Mersenne number or not

## Java Numbers: Exercise-22 with Solution

Write a program to check if a number is a Mersenne number or not.

In mathematics, a Mersenne number is a number that can be written in the form M(n) = 2^{n} − 1 for some integer n.

The first four Mersenne primes are 3, 7, 31, and 127

*Test Data*

Input a number: 127

**Pictorial Presentation:**

**Sample Solution:**

**Java Code:**

```
import java.util.Scanner;
import java.math.BigInteger;
public class Example22 {
public static void main(String args[])
{
Scanner in = new Scanner(System.in);
System.out.print("Input a number: ");
int n = in.nextInt();
int n1 = n + 1;
int power = 0;
int ans = 0;
for(int i=0;;i++)
{
power=(int)Math.pow(2,i);
if(power>n1)
{
break;
}
else if(power==n1)
{
System.out.println(n+" is a Mersenne number.");
ans=1;
}
}
if(ans==0)
{
System.out.println(n+" is not a Mersenne number.");
}
}
}
```

Sample Output:

Input a number: 127 127 is a Mersenne number.

**Flowchart: **

**Java Code Editor:**

** Contribute your code and comments through Disqus.**

**Previous:** Write java program to find any number between 1 and n that can be expressed as the sum of two cubes in two (or more) different ways.

**Next:** Write a Java program to find all the narcissistic numbers between 1 and 1000.

**What is the difficulty level of this exercise?**

Test your Programming skills with w3resource's quiz.

**It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.**

https://www.w3resource.com/java-exercises/numbers/java-number-exercise-22.php

**Weekly Trends and Language Statistics**- Weekly Trends and Language Statistics