# Beal prize – first approach

May be you already heard that so called Beal Prize was increased to 1.000.000\$ (http://ns3.ams.org/bealprize.html). So if you can find positive integers A^x+B^y=C^z where x,y,z > 2 and A,B,C dont have common factor, you can get a lot of cash. As you can see its not a complication to write a piece of code to check some range of numbers, or generator to generate some lucky numbers. Its officially checked only in range where all numbers are less than 1000.

So i decided to try my luck.

As first approach i decided to generate a lot of prime numbers (15.000.000 for start). This is C++ code for relatively fast generation of prime numbers:

// Primes

int MAXPRIME = 15000000;

unsigned long * primeNumbers = new unsigned long[MAXPRIME];

LOG << “Computing “ << MAXPRIME << ” prime numbers…” << NL;

LOG.startProfile();

{

long x = 3;

long sqrtIndex = 0;

for (int i = 2; i < MAXPRIME; i++)

{

bool ok = false;

while (!ok)

{

x += 2;

if ((x % 6 == 1) || (x % 6 == 5))

{

ok = true;

sqrtIndex++;

for (int j = 0; j <= sqrtIndex; j++)

if (x % primeNumbers[j] == 0)

{ ok = false; break; }

}

}

if (i % 100000 == 0)

LOG << i << ” [ “ << primeNumbers[i] << ” ] “ << NL;

}

}

LOG.profile(“Computing “ + SS::toString(MAXPRIME) + ” prime numbers was completed”);

To check Beal conjecture we need support of very long integers for C++. I have my own implementation, but you can use any decent library.As first straight-forward approach i decided to do in endless cycle the following (until i get lucky numbers):

• Get two random prime numbers from pregenerated array.
• Generate random x,y,z within reasonable range.
• Compute S=A^x+B^Y
• Compute the most close C – which gives (2*C)^z ~ S (i have used simple method of bisection).
• If (2*C)^z == S break and report success.

I got yet no success, and some mathematicians tell that conjecture is probably true. But still why not to try to search if it is so easy.