#! /usr/bin/perl

use strict;

sub ist_prim
{
    my $wert = $_[0];

    return 1 if ($wert == 2);
    return 0 if ($wert % 2 == 0);

    for (my $teiler = 3; $teiler <= sqrt ($wert); $teiler += 2)
    {
	return 0 if ($wert % $teiler == 0);
    }

    return 1;
}

print "Content-type: text/html

<html>
 <body>
";

my $parameter;

if ($ENV{'REQUEST_METHOD'} eq 'POST')
{
    read (STDIN, $parameter, $ENV{'CONTENT_LENGTH'});
}
else
{
    $parameter = $ENV{'QUERY_STRING'};
}

my %uebergabe;
for my $paar (split (/&/, $parameter))
{
    my $name;
    my $wert;

    ($name, $wert) = split (/=/, $paar);
    $uebergabe{$name} = $wert;
}

my $ende = $uebergabe{'ende'};
my $zaehler = 0;
if ($ende =~ /^\d+$/)
{
    print "<h1>Primzahlen bis $ende:</h1><br><table border=1><tr>";
    for (my $zahl = 3; $zahl <= $ende; $zahl += 2)
    {
	if (ist_prim ($zahl))
	{
	    $zaehler++;
	    print "<td>$zahl</td>";
	    if ($zaehler % 10 == 0)
	    {
		print "</tr><tr>";
	    }
	}
    }
    print "</tr>" if ($zaehler % 10 != 0);
    print "</table>";
}
else
{
    print "Der eingegebene Wert ist unzulaessig!";
}

print "
 </body>
</html>
";







