Mersenne Primes Explorer

Searching for Mersenne primes: 2^p - 1 where p is prime

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

  1. Enter a prime exponent p (or let it search automatically)
  2. Click "Check Mersenne Prime"
  3. View the calculated value 2^p - 1
  4. See if it's prime and compare with known Mersenne primes

Related Documentation