Hoi

Ik wil graag weten of 35184372088832 een priemgetal is :) Hoe kom ik daar achter? Zonder getalletjes te tellen, het zijn er 14 :) Dus het is 15 komma 18 triljoen (15.18 E 12).
En dat zijn nog maar 14 getalletjes. Hoe kom ik er achter als het er 70 zijn? Zijn er iets van priemgetal-achterhaal-logarithmen?? :)
Formules die het iets makkelijker maken? Al is het maar een factor 10 minder proberen, scheelt toch weer.

En nee, ik ga geen loop bouwen die N gaat delen door elk getal groter dan 1, kleiner dan N. Dan moet ik 35.18 triljoen loops bouwen, dacht t niet!

Dank
<?php
function isPriem($getal)
{
for($i = 2; $i < $getal; $i++)
{
if($getal%$i == 0)
{
return false;
}
}
return true;
}

$nummer = 3;
var_dump(isPriem($nummer));
?>

Om even terug te vallen op dat script, wat doet de functie
if($getal%$i == 0)
precies? Wat betekend die %?
er net zo vaak van aftrekken totdat het niet meer kan en dan de rest waarde teruggeven
Wat je zelf doet met een staartdeling dus. Geeft dus de zogenaamde 'rest' terug.
Ok dat kende ik nog niet in PHP, bedankt!
Sowieso zijn getallen niet te delen door een getal dat groter is dan de helft van zichzelf met een uitkomst groter dan 1. Oftewel:

<?php

$x = 'een getal';
$y = $x/2;
$a = 'nog een getal';

if($a > $y)
{
// $x/$a zal een getal geven tussen 1 en 2
}

?>

In dat script van Blanche kun je dus de helft van de getallen al afschrijven. Het wordt dan zoiets:

<?php
function isPriem($getal)
{
for($i = 2; $i < round($getal/2); $i++)
{
if($getal%$i == 0)
{
return false;
}
}
return true;
}

$nummer = 3;
var_dump(isPriem($nummer));
?>

Of zeg ik nu iets raars?

Reageren