Skip to content

Instantly share code, notes, and snippets.

@cicnavi
Created July 20, 2018 12:08
Show Gist options
  • Save cicnavi/90fd0c63498733578ecdc1c2a1e5202c to your computer and use it in GitHub Desktop.
Save cicnavi/90fd0c63498733578ecdc1c2a1e5202c to your computer and use it in GitHub Desktop.
PHP script used for simple speed testing of different PHP versions. It generates (large) random numbers and checks if they are prime or not.
<?php
// Save the time when the script started running.
$startTime = time();
// Number of times we will generate a random number and check if it is a prime.
$numberOfRandomNumbers = 1E5; // Scientific notation for number 100000
// Iterate the desired number of times and check if random number is prime.
for ($i = 0; $i < $numberOfRandomNumbers; $i++) {
// Generate (large) random number.
$randomNumber = rand(getrandmax() - 1E5, getrandmax());
// Check if number is prime or not.
$isPrime = isPrime($randomNumber);
}
// Save the time when the script stopped running.
$endTime = time();
// Display the number of seconds the script was running.
echo $endTime - $startTime . "\n";
/**
* Check if number is prime or not.
* @param int $number Number to check.
* @return boolean True if number is prime, else false.
*/
function isPrime($number) {
// Check lower boundaries on primality
if( $number == 2 ){
return true;
} // 1 is not prime, even numbers > 2 are not prime
else if( $number == 1 || ($number & 1) == 0){
return false;
}
// Check for primality using odd numbers from 3 to sqrt(n)
for($i = 3; $i <= sqrt($number); $i += 2){
// number is not prime if it is evenly divisible by some 'i' in this range
if( fmod($number, 2) == 0 ){
return false;
}
}
// Number is prime
return true;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment