Saturday, April 26, 2025

My Mersenne Primality Testing Algorithm

I'm not sure how fast it is compared to GIMPS, but it is acurate for all Mersenne or Fermat primes. See my article Value-Counting Up to N for why.

import sys
import time

# Remove the limit
sys.set_int_max_str_digits(0)

i = 0

def signal_handler(sig, frame):
	global i
	if sig == signal.SIGINT:
		print("index = %i" % (i))
	sys.exit(0)

def int_sqrt(n):
	"""
	Calculate the integer square root of a non-negative integer n.
	This function returns the largest integer whose square is less than or equal to n.
	"""
	if n < 0:
		raise ValueError("Cannot calculate square root of a negative number.")
	if n == 0:
		return 0
	x = n
	y = 1
	i = 0
	while x > y:
		x = (x + y) // 2
		y = n // x
	return x

def prime_power(n):
	signal.signal(signal.SIGINT, signal_handler)
	total = 0
	half_n = (n + 1) // 2
#	limit = half_n
#	limit = math.ceil((half_n*(half_n + 1) // 2 + 1) / n)
	limit = (n + 13)//8
	start_time = time.perf_counter()
	end_time = start_time

	global i
	for i in range(2, limit):
		# border_value represents the number that ends on the last
		# column when all numbers up to it are added and wrapped.
		border_value = int((int_sqrt(8 * i * n + 1) - 1)/2)
		total = (border_value * (border_value + 1)//2)
		elapsed_time = end_time - start_time
		if (total == (i * n)):# or (total + (border_value + 1)//2 == (i * n)):
			print("%i" % (border_value))
			return
		end_time = time.perf_counter()
		elapsed_time = end_time - start_time
		if elapsed_time > WAIT_TIME:
			start_time = end_time
			end_time = time.perf_counter()
	print("\tprime_power")

print("p\tborder\tprime power")

prime_power(2**89-1)

Saturday, April 05, 2025

Busy Beaver Number 5 is Alive!

In theoretical computer science, the objective of the busy beaver is to find a terminating program of a given size that (depending on definition) either produces the most output possible, denoted by BB(n), or runs for the longest number of steps.

The latest value for n = 5 was recently discovered.

The known values are BB(1) = 1, BB(2) = 6, BB(3) = 21, BB(4) = 107, BB(5) = 47,176,870.

Click here for more information.

Monday, March 31, 2025

An Amazing Approximation to e

An amazing pandigital approximation to e that is correct to 18,457,734,525,360,901,453,873,570 decimal places is given by:

`e\approx(1+9^(−4^(6⋅7)))^(3^(2^85))`

It was discovered by Richard Sabey in 2004.

Proof:

`(1+9^(−4^(6⋅7)))^(3^(2^85))=(1+9^(−4^42))^(3^(2^85))`

`=(1+9^(−4^42))^(3^(2*2^84))`

`=(1+9^(−4^42))^(3^(2*2^84))`

`=(1+9^(−4^42))^(9^(2^(84)))`

`=(1+9^(−4^42))^(9^(4^42))`

`=(1+\frac{1}{9^(4^42)})^(9^(4^42))`

`=(1+\frac{1}{n})^n`.

Monday, March 24, 2025

Permutation Rotations

In this paper, we discuss certain properties of permutation rotations on each other.

Click here to read my paper.

Tuesday, December 17, 2024

The Golden Ratio's Siblings

On real numbers whose fractional part remain constant after squaring.

Click here to read my paper.

52nd Known Mersenne Prime Found!

The Great Internet Mersenne Prime Search (GIMPS) has discovered the largest known prime number, 2136,279,841-1, having 41,024,320 decimal digits. Luke Durant, from San Jose, California, found the prime on October 12th.

Click here for more information.

Friday, June 02, 2023

A Chiral Aperiodic Monotile

An update to the aperiodic tile. This update shows that a shape that tiles the plane aperiodically without reflections is possible. The original one did not.

Click here for the article.

Saturday, April 01, 2023

Mathematicians have finally discovered an elusive ‘einstein’ tile

A 13-sided shape known as “the hat” has mathematicians tipping their caps.

It’s the first true example of an “einstein,” a single shape that forms a special tiling of a plane: Like bathroom floor tile, it can cover an entire surface with no gaps or overlaps but only with a pattern that never repeats.

Click here for more information.