# Primzahlen ermitteln



## cotrhox (22. Februar 2005)

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


```
<?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


----------



## Gumbo (22. Februar 2005)

Probier mal folgendes:
	
	
	



```
<?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);

?>
```


----------

