Monday, May 11, 2026

A Huge Argument With Kareem

We had a family picnic yesterday for Mother's Day. Kareem had to work that morning. His work was supposed to be late, but a few days ago, they rescheuled him in the morning. He arrived absolutely pissed and everyone saw it. He claimed it was due to work and the rainy weather and that he should not have come even though it was a few miles from his work. So I let him leave after seeing everyone.

When he came home, he was absolutely upset and said he'll never hang out with relatives unless he feels like it. He no longer feels that he should hang out with family just because they are blood. Kareem told me that he got a girlfriend a month or so ago. She's a Chinese student from one of his classes. He seems to have bought her jewelry already. The same thing he's done for his previous girlfriend. He buys them stuff instead of using his salary for food and then asks me to add money to his account.

He told me that he no longer cares what I think about traditional Druze marriage and that he will marry whoever he likes. He told me that Salem was dating his high school friend Deborah, Aiden's ex, and that his parents don't care. It's hard to raise him our way when my own brother doesn't care. When I told him I still do, he was upset because he wants me to put his happiness first. I said I do, but I reminded him that I wish to retire in Lebanon since I can't affors anything here, and that even though he was born to Lebanse Druze parents, he never got to know my parents. So marrying a non-Druze means that there's zero chance that his wife would come to Lebanon or send the kids with him to Lebanon. And if does come, it would be a one-time trip and his kids, who wouldn't speak Arabic or know the culture, would say never again, just like he's doing. So marrying a non-Druze is an automatic

Tuesday, January 06, 2026

Six-Decade Math Puzzle Solved by Korean Mathematician

A Korean mathematician has won international recognition for solving a geometry puzzle, the moving sofa problem, that had resisted proof for nearly six decades.

Click here for more information.

Saturday, November 01, 2025

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.