programme/php/siebdeseratosthenes/sieberatosthenes.php
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
<?php
define("GROESSEZAHLENFELD",200);
$Zahlenfeld = array();
$Zahlenfeld[1] = false;
for($Fuellen=2; $Fuellen <= GROESSEZAHLENFELD; $Fuellen ++)
{
$Zahlenfeld[$Fuellen] = true;
}
for($Schritte = 4; $Schritte <= GROESSEZAHLENFELD; $Schritte += 2)
{
$Zahlenfeld[$Schritte] = false;
}
$TestGrenze = round(sqrt(GROESSEZAHLENFELD),0) + 1;
$Teiler = 3;
while($Teiler <= $TestGrenze)
{
$TeilerSich = $Teiler;
$Faktoren = 0;
while($Faktoren <= GROESSEZAHLENFELD)
{
$Faktoren = $Faktoren + $Teiler + $TeilerSich;
$Zahlenfeld[$Faktoren] = false;
$TeilerSich = 0;
}
$Teiler += 2;
if($Zahlenfeld[$Teiler] === false)
{
$Teiler += 2;
}
}
echo "<table width=\"236\" border=\"1\" cellspacing=\"2\" cellpadding=\"0\">\n";
echo "<tr>\n";
for($Auslesen=1; $Auslesen <= GROESSEZAHLENFELD; $Auslesen ++)
{
if($Zahlenfeld[$Auslesen] === true)
{
echo "<td><font color=\"red\"><b>$Auslesen</b></font></td>\n";
}
else
{
echo "<td><strike><b>$Auslesen</b></strike></td>\n";
}
if($Auslesen%10 == 0 && $Auslesen != GROESSEZAHLENFELD)
{
echo "</tr>\n";
echo "<tr>\n";
}
}
echo "</tr>\n";
echo "</table>\n";
?>