Primzahlen ermitteln

cotrhox

Grünschnabel
Ich habe ein kleines Script was Primzahlen in einen vom Benutzer bestimmten Bereich ermitteln soll.

Code:
 <?php
 $start = 1;				 //Start des Bereichs
 $ende = 10;				 //Ende des Bereichs
    $nichtPrimzahlen = array();
    $Primzahlen	  = array();
    for($i = $start; $i <= $ende; $i++)
      {
    	  if ($i != 2 and $i != 1 and $i != 0)
    	  {
    		  $start2 = $i - 1;
    		  for($i2 = $start2; $i2 > 1; $i2--)
    		  {
    			  if($i % $i2 = 0)
    			  {
 				 if(!in_array($i, $nichtPrimzahlen))
    				  {
 					array_push($nichtPrimzahlen, $i);
    				  }
    			  }
    		  }
    		  if(!in_array($i, $nichtPrimzahlen))
    		  {
    			  array_push($Primzahlen, $i);
    		  }
    	  }
      }
      foreach($Primzahlen as $ausgabewerte)
      echo $ausgabewerte, "<br>";
    ?>
In der Ausgabe stehe alle Zahlen von 3 bis 10, weil 0, 1 und 2 ja bereits mit der if Abfrage ausgeschlossen werden. In dem anderen Array befinden sich keine Zahlen. Ich habe bereits die einzelnen Zeilen auseinander genommen und getested...aber ich kann keinen Fehler finden.
Danke schon mal
MfG
 
Zuletzt bearbeitet:
Probier mal folgendes:
PHP:
<?php

	$start = 1;	  //Start des Bereichs
	$ende = 2000;	//Ende des Bereichs
	$i = $start;
	$primzahlen = array();

	if( $start < 0 || $start >= $ende ) {
		echo 'Wählen Sie einen anderen Start- bzw. Endwert aus.';
		exit;
	}

	if( $i % 2 == 0 ) $i++;

	for($i; $i<=$ende; $i+=2) {
		$n = ceil($i/2);
		for($j=3; $j<$n; $j++) {
			if( $i % $j == 0 ) {
				continue(2);
			}
		}
		$primzahlen[] = $i;
	}
	print_r($primzahlen);

?>
 
Zurück