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();
{
primeNumbers[0] = 2;
primeNumbers[1] = 3;
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;
while (primeNumbers[sqrtIndex] * primeNumbers[sqrtIndex] < x)
sqrtIndex++;
for (int j = 0; j <= sqrtIndex; j++)
if (x % primeNumbers[j] == 0)
{ ok = false; break; }
}
}
primeNumbers[i] = x;
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.