I wrote a program in PHP to find the largest prime factor. I think it is quite optimized, because it loads quite fast. But, there is a problem: it doesn’t count the prime factors of very big numbers. Here is the program:
function is_even($s) {
$sk_sum = 0;
for($i = 1; $i <= $s; $i++) {
if($s % $i == 0) { $sk_sum++; }
}
if($sk_sum == 2) {
return true;
}
}
$x = 600851475143; $i = 2; //x is number
while($i <= $x) {
if($x % $i == 0) {
if(is_even($i)) {
$sk = $i; $x = $x / $i;
}
}
$i++;
}
echo $sk;
The largest non-overflowing integer in PHP is stored in the constant
PHP_INT_MAX.You won’t be able to work with integers larger than this value in PHP.
To see all of PHP’s predefined constants, just use:
PHP_INT_MAXprobably has a value of2,147,483,647.To handle numbers of arbitrary precision in PHP, see either the GMP or BC Math PHP extensions.