PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Primzahlen überprüfen mit PHP


aVenger
2007-04-10, 04:42:36
Es wird immer ausgegeben das es sich um KEINE Primzahl handelt. Kann mir einer sagen was da falsch ist?

<?php

//führt die Berechnung durch
function calc($wert)
{
if (isset($wert) && trim($wert)!='')
{
if ($wert < 2) {
return false;
}
else if ($wert == 2) {
return true;
}
else if ($wert%2 == 0) {
return false;
}
else {
for ($i=3; $i*$i<=$wert; $i+=2) {
if ($wert%$i==0) {
return false;
}
}
return true;
}
}
}

calc($_POST['wert']) ;

?>

<html>
<head>
<title>Primzahlenüberprüfung</title>
</head>
<body>

<h1>Primzahlenüberprüfung</h1>

<?php
if (calc($wert)==true ) echo "Primzahl";
if (calc($wert)==false) echo "KEINE Primzahl";
?>

<form action="index.php" method="post">
<table width="100px">
<tr>
<td><input type="text" size="40" name="wert"></td>
</tr>
<tr>
<td><input type="submit" value="&uuml;berprüfen"></td>
</tr>
</table>

</form>

</body>
</html>

zeckensack
2007-04-10, 05:30:05
if (calc($_POST['wert'])==true ) echo "Primzahl"; else echo "KEINE Primzahl";

Das erste calc($_POST['wert']) ; kannst du rausschmeißen, du fängst mit dem Ergebnis ja nichts an. Das zweite if auch rausschmeißen.

Dein Primzahlentest funktioniert nicht für die drei.

aVenger
2007-04-10, 05:42:05
habs jetzt so gelöst und es funktioniert auch

<?php

//initialisiert die Session
session_start();

//Standardwerte werden in der Session initialisiert
$_SESSION['wert']='';

//funktion für die berechnung
function calc($wert)
{
//wurde ein wert eingegeben??
if (isset($wert) && trim($wert)!='')
{
//setzen der sessionvariable
$_SESSION['wert']=$wert;
if ($wert < 2) {
return false;
}
else if ($wert == 2) {
return true;
}
else if ($wert%2 == 0) {
return false;
}
else {
for ($i=3; $i*$i<=$wert; $i+=2) {
if ($wert%$i==0) {
return false;
}
}
return true;
}
}
}

//berechnung wird durchgeführt
calc($_POST['wert']) ;

?>

<html>
<head>
<title>Primzahlenüberprüfung</title>
</head>
<body>

<h1>Primzahlenüberprüfung</h1>

<?php
if(isset($_POST['check'])){
if (calc($_SESSION['wert'])==true ) echo $_SESSION['wert'] ." ist eine Primzahl";
if (calc($_SESSION['wert'])==false) echo $_SESSION['wert'] ." ist KEINE Primzahl";
}
else echo "Bitte geben sie eine Zahl ein";
?>

<form action="index.php" method="post">
<table width="100px">
<tr>
<td><input type="text" size="40" name="wert" value="<?php echo $_SESSION['wert']; ?>"></td>
</tr>
<tr>
<td><input type="submit" name="check" value="&Uuml;berpr&uuml;fen"></td>
</tr>
</table>

</form>

</body>
</html>