Is it a Mersenne Prime? A number is a Mersenne Prime if it is both prime and can be written in the form 2n-1, where n is a positive integer. 


Your task is to, given any positive integer, determine whether or not it is a Mersenne prime. You may submit either a function which returns a truthy/falsy value, or a full program which performs IO.

Rules:


As this is code-golf, you should aim to do this in the shortest byte count possible. Builtins are allowed.
Standard golfing loopholes apply - you cannot read the Mersenne primes from external files, or hardcode them into your program. 
Your program should work for values within your language's standard integer size.




Test Cases

For reference, a list of (known) Mersenne Primes can be found here. Some handy test cases are:

2  -&gt; False
1  -&gt; False 
20 -&gt; False
51 -&gt; False
63 -&gt; False

3    -&gt; True
31   -&gt; True
8191 -&gt; True




Merry Christmas, everybody! Have a great holiday, whatever you celebrate :)
05AB1E, 5 bytes

A positive number in the form 2n - 1 in binary only consists of 1's.

Code:

b`¹pP


Explanation:

b`      # Push each digit of the binary representation of the number onto the stack
  ¹p    # Check if the input is prime
    P   # Take the product of all these digits


Uses the CP-1252 encoding. Try it online! or Verify all test cases.