Prime Obsession

It looks like the research of Dr. DeMaio and myself is starting to pay off. As you may recall, we’re searching for prime numbers that lie within the domain of Stirling Numbers of the Second Kind. Essentially it is nothing more than a function with two parameters, and we are looking at the primality of the result for all combinations of values given as input to the function.

Our goal for the time being is to discover algorithms which allow us to effectively cull out potential candidates before calculating the result of the function and then doing expensive primality tests. Our current implementation uses an advanced bitmasking scheme that is quite fast, running on hundreds of thousands of values per second. However, we’re still only eliminating 95%+ of values, which leaves 5% that we must still calculate. While that may not seem like much, our current milestone is to search through a particular space of 400,000 values. We’ve completed just under 120,000, but with each passing value, the computations become far more time consuming. Each at this point takes several seconds to both compute the result of the function, and to do primality tests on it.

However, two days ago, we did receive a nice present. A new prime number! It weighs in at 6491 digits long. While that number is quite big, it can actually be represented quite succinctly as S{10780,4}, or, in slightly less mathematical terms, the number of ways you can arrange 10,780 objects into 4 discrete, nonempty sets.

There is still significant work left to be done. Future goals include presentations at several math conferences in the near future, and hopefully a joint publication of some sort. We have discovered several extremely interesting patterns which may become very useful in aiding us throughout this project, and the nature of those patterns may give some insight into the distribution of prime numbers themselves. In particular, one of our algorithms seems to lend itself towards being a moderately useful filter for candidate Mersenne Primes. While not anything groundbreaking, it may eliminate a few values to check, which can be a godsend at higher values.

We’ve made the code highly modular, and as it stands, it will be more than possible to distribute work easily and efficiently. If anyone is interested in contributing some extra CPU cycles to the task, we would greatly appreciate it. The process shouldn’t be too terribly difficult.