Solve ProjectEuler 049 and 050.
This commit is contained in:
30
solutions/ProjectEuler/049/solve.php
Normal file
30
solutions/ProjectEuler/049/solve.php
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
include("vendor/autoload.php");
|
||||||
|
|
||||||
|
for($p1 = 1000; $p1<9999-(2*3330); $p1++)
|
||||||
|
{
|
||||||
|
if(CodingTests\Prime::isPrime($p1))
|
||||||
|
{
|
||||||
|
$p2 = $p1 + 3330;
|
||||||
|
if(CodingTests\Prime::isPrime($p2))
|
||||||
|
{
|
||||||
|
$p3 = $p2 + 3330;
|
||||||
|
if(CodingTests\Prime::isPrime($p3))
|
||||||
|
{
|
||||||
|
$p1_occ = count_chars($p1);
|
||||||
|
ksort($p1_occ);
|
||||||
|
$p2_occ = count_chars($p2);
|
||||||
|
ksort($p2_occ);
|
||||||
|
$p3_occ = count_chars($p3);
|
||||||
|
ksort($p3_occ);
|
||||||
|
|
||||||
|
if( $p1_occ == $p2_occ && $p2_occ == $p3_occ)
|
||||||
|
{
|
||||||
|
echo "Permutation $p1$p2$p3\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
39
solutions/ProjectEuler/050/solve.php
Normal file
39
solutions/ProjectEuler/050/solve.php
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
include("vendor/autoload.php");
|
||||||
|
define("MAX", 1000000);
|
||||||
|
CodingTests\Prime::isPrime((3));
|
||||||
|
$primes = [];
|
||||||
|
|
||||||
|
function is_prime(int $n) :bool{for($i=$n**.5|1;$i&&$n%$i--;);return!$i&&$n>1;}
|
||||||
|
for($p= 1; $p < MAX; $p+=2)
|
||||||
|
{
|
||||||
|
if($p%1001 == 0)
|
||||||
|
{
|
||||||
|
echo $p."\n";
|
||||||
|
}
|
||||||
|
if(CodingTests\Prime::isPrime($p))
|
||||||
|
{
|
||||||
|
$primes[] = $p;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
echo "Precalculate done";
|
||||||
|
$longest = 0;
|
||||||
|
for($start = 0; $start < sizeof($primes); $start++) {
|
||||||
|
|
||||||
|
for($len = 1; $len <sizeof($primes)-$start; $len++)
|
||||||
|
{
|
||||||
|
//print_r(array_slice($primes, $start, $len));
|
||||||
|
$sum = array_sum(array_slice($primes, $start, $len));
|
||||||
|
if($sum > MAX)
|
||||||
|
{
|
||||||
|
continue 2;
|
||||||
|
}
|
||||||
|
if(in_array($sum, $primes) && $len > $longest)
|
||||||
|
{
|
||||||
|
echo "Found $len=>$sum \n";
|
||||||
|
|
||||||
|
$longest = $len;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user