$x set $IsPrime to 1 else divide it into $NumberToTest. If there is no remainder$ factor of $NumberToTest) set $IsPrime to 0, else take the next number until the list is exhausted a$ */ $sql="SELECT thenumber FROM Number WHERE thenumber <= " . gmp_strval(gmp_add(gmp_sqrt($NumberToTest),1)); $result = $db->query($sql) or die ("\nSelect failed: $sql\n" . $db->error . "\n"); /* Loop through the whole list of found primes <= sgrt($NumberToTest) */ while($row = $result->fetchArray()) { $Prime = $row['thenumber']; /* Error occurs here. gmp_mod() errors cuz -2147483648 isn't a valid gmp Resource. Is the $Prime assignment f'ing up? */ if(0 == gmp_cmp(gmp_mod($NumberToTest,$Prime),0)) /* If $NumberToTest/$Prime has no remainder then $NumberToTest isn't prime. */ { $IsPrime = 0; break; } } } /* If prime add this new prime to our prime list. */ if(1 == $IsPrime) { /* Add $NumberToTest to database. */ $sql = "INSERT INTO Number (thenumber) VALUES (" . gmp_strval($NumberToTest) . ")"; $db->query($sql) or die ("\nInsert failed: $sql\n" . $db->error . "\n"); } /* Prep for the next number to test by incrementing by 2 and saving this to NumberToTest.txt (in case the program crashes we can start here next time). */ $Counter = $Counter % $StatusCheck; if(0 == $Counter) { write_wwi(); } $Counter++; $NumberToTest = gmp_add($NumberToTest,$two); } if(!(is_resource($NumberToTest))) { print "\nNumberToTest is no longer a resource.\n"; print "NumberToTest: $NumberToTest\n"; } function write_wwi() { global $NumberToTest; @unlink("NumberToTest.txt"); file_put_contents("NumberToTest.txt", gmp_strval($NumberToTest)); print date("Y-m-d H:i:s") . " --> NumberToTest = " . gmp_strval($NumberToTest) . "\n"; echo "NumberToTest as a Resource: " . $NumberToTest . "\n"; } function sig_handler($signo) { switch ($signo) { case SIGINT: write_wwi(); print "SIGINT"; exit; break; case SIGTERM: /* handle shutdown tasks */ write_wwi(); print "SIGTERM"; exit; break; case SIGHUP: /* handle restart tasks */ print "SIGHUP"; write_wwi(); break; default: /* handle all other signals */ } }