Overview
The Mersenne Primes Explorer searches for Mersenne primes (numbers of the form 2^p - 1 where p is prime). All power calculations and primality tests are performed using Romasm assembly.
Mersenne Primes
What are they?
A Mersenne prime is a prime number of the form:
M_p = 2^p - 1
where p is also a prime number.
Examples:
- p=2: M₂ = 2² - 1 = 3 (prime)
- p=3: M₃ = 2³ - 1 = 7 (prime)
- p=5: M₅ = 2⁵ - 1 = 31 (prime)
- p=7: M₇ = 2⁷ - 1 = 127 (prime)
- p=11: M₁₁ = 2¹¹ - 1 = 2047 = 23 × 89 (not prime)
Status: As of 2025, 51 Mersenne primes are known. The largest has over 24 million digits!
Romasm Implementation
The explorer uses Romasm assembly to calculate powers and check primality:
; Check if 2^p - 1 is a Mersenne prime
; Input: R0 = p (prime exponent)
; Output: R0 = 1 if Mersenne prime, 0 if not
; First verify p is prime
CALL is_prime
CMP R0, 1
JNE not_mersenne ; If p is not prime, M_p cannot be prime
; Calculate 2^p
LOAD R1, 2 ; Base = 2
LOAD R2, R0 ; Exponent = p
CALL power ; R0 = 2^p
; Calculate 2^p - 1
DEC R0 ; R0 = 2^p - 1
; Check if result is prime
CALL is_prime ; Check if M_p is prime
RET
not_mersenne:
LOAD R0, 0
RET
Using the Explorer
- Enter a prime exponent p (or let it search automatically)
- Click "Check Mersenne Prime"
- View the calculated value 2^p - 1
- See if it's prime and compare with known Mersenne primes
Related Documentation
- Math Library - Power function
- Try the Explorer - Open it now!