I am trying to answer the following question and am failing miserably at it.
A Mersenne prime is a prime number that is equal to 2^n-1, where n is an integer. For exampke, 31 is a Mersenne prime since 31=2^5-1. Write a program that finds all the Mersenne primes between 1 and 10,000. Do not use MATLAB's built-in function isprime.
Here's what I have so far:
clc,clearn=10000;prime=[1 2 3];s=0;for i=4:n isprime=1; for j=2:i-1 %(or i/2) because i/2 is optimal
if rem(i,j)==0 isprime=0; end end if isprime==1 prime(end+1)=i; endendk=length(prime);n=1;l=0;MersennePrimeIndex=0;for i=2:k if (2^n)-1==find(prime(i)); MersennePrimeIndex=MersennePrimeIndex+1; l(MersennePrimeIndex)=prime(i); n=n+1; endend
Best Answer