close× Call Us +49 (1805) 01 29 59

Gr@n@dE
Thread Author: Columbo
Thread ID: 3890
Thread Info
Es gibt 5 Beiträge zu diesem Thema, und es wurde 2947 mal angesehen.
 Thema drucken
Primzahlen ausgeben lassen
Columbo
Hallo Leute,

ich habe im Internet folgendes Script gefunden, mit dem man Primzahlen (von wert bis wert2) ausgeben lassen kann (könnte...):
http://scratchbook.ch/2005/02/08/Primzahlen-berechnen-PHP-machts-m-glich/

Allerdings stammt der Beitrag aus dem Jahre 2005, und das ganze ist noch dazu -meines Erachtens- kompliziert programmiert.
Das Script funktioniert bei mir nicht - Tippfehler schließe ich nicht aus, da der Code dummerweise als Bild dargestellt wird.

Ich habe es so abgeschrieben:
Code

<?php
for($juhu=$formax;$juhu>1;$juhu--){
  $max = $juhu;
  $now = $max - 1;
  $result = 0.0;

  call_user_func("prime", $max, $now, $result, $verbose);

}


function prime($max, $now, $result, $verbose){
  while(!is_int($result)){
    $result = $max / $now;
   if($verbose == yes){
     echo "$max / $now = $result<br>/n";
    }
    if($now == 1){
      echo "<b>$max ist eine Primzahl. </b><br>/n";
    }
    $now = $now -1;
  }
}




?>


Hat jemand von euch eine Lösung des Problems, oder eine bessere Variante, mit der man Primzahlen von $wert1 bis $wert2 ausgeben lassen kann?

Liebe Grüße,
Columbo =)
Bearbeitet von Columbo am 26.12.2011 00000012 15:34
 
SC-Ad-Bot
 
emblinux
Vielleicht nicht gerade das schnellste, aber funktioniert.

Code

<?php
$von = 0;
$bis = 30;

function isprime($primetest)
{
  $maxtest = sqrt($primetest);
  for ($i = 2; $i <= $maxtest; ++$i)
     {
       if ($primetest % $i == 0)
         {
           return false;
         }
     }
  return true;
}


for($c=$von;$c<=$bis;$c++)
   {
     if ( isprime( $c ) )
       {
         echo "$c ist eine Primzahl.<br />\n";
       }
   }
?>

Das Lernen ist wie ein Meer ohne Ufer. Konfuzius

Alles wird Gut!

KEIN Support per Mail, ICQ oder PN !
www.heiseclan.de/fusion/sig.gif

www.heiseclan.de/geosig.gif
 
Columbo
Hallo,

danke für deine Antwort!! =)

Dein Script funktioniert toll!
Ich habe das ganze jetzt noch abgewandelt mit Eingabefeldern. ;)

Code

<?php

$von = $_GET['von'];
$bis = $_GET['bis'];

?>

<form action="primzahlen.php" method="GET">
<input type="text" name="von">
<input type="text" name="bis">
<input type="submit" name="submit">
</form>

<?php
//$von = 0;
//$bis = 35;

function isprime($primetest)
{
  $maxtest = sqrt($primetest);
  for ($i = 2; $i <= $maxtest; ++$i)
     {
       if ($primetest % $i == 0)
         {
           return false;
         }
     }
  return true;
}


for($c=$_GET['von'];$c<=$_GET['bis'];$c++)
   {
     if ( isprime( $c ) )
       {
         
       echo "$c ist eine Primzahl.<br />\n";
       }
   }
?>


Hm... möchte vielleicht noch jemand probieren in mein abgewandeltes Script eine Funktion reinzubringen, die ausgibt, wieviele Primzahlen zwischen
$von und $bis liegen?
=)

Vielen Dank und liebe Grüße,
Columbo! :D
Bearbeitet von Columbo am 27.12.2011 00000012 10:54
 
emblinux
ändere einfach den entsprechenden Teil wie folgt ab:
Code


$pcnt = 0;
for($c=$_GET['von'];$c<=$_GET['bis'];$c++)
   {
     if ( isprime( $c ) )
       {
         $pcnt++;
       echo "$c ist eine Primzahl.<br />\n";
       }
   }

echo "Im angegebenen Bereich existieren $pcnt Primzahlen.";

Das Lernen ist wie ein Meer ohne Ufer. Konfuzius

Alles wird Gut!

KEIN Support per Mail, ICQ oder PN !
www.heiseclan.de/fusion/sig.gif

www.heiseclan.de/geosig.gif
 
Columbo
Danke vielmals! happy

Ich wünsche dir noch schöne Weihnachtstage,
liebe Grüße,
Columbo Wink
 
Springe ins Forum:
Heiseclan