primzahlcheck

newbee

Mitglied
hallo ihr. ich soll ein programm schreiben das eingegebene zahlen überprüft ob es eine primzahl ist. habe follgendes proggie geschrieben
Code:
import java.io.*;

class Primzahltest {

   public static void main (String args[]) throws Exception {

      BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));
      int n;
      boolean isprim;

      // Eingabe

      System.out.print ("Geben sie eine natrürliche Zahl n ein ");
      n = Integer.parseInt(eingabe.readLine());

      // eigentliche Berechnung

      if (n == 1) {
         isprim = false;
      }
      else {
         isprim = true;
         for (int i = 2; i <= Math.sqrt(n); i++) {// kann man auch auf die methode verzichten? und das irgentwie anders mit ner for schleife machen?

            //Testet, ob n modulo i gleich 0 ist (d.h. ob i die Zahl n teilt)

            if (n % i == 0) {
               isprim = false;
               break;
            }
         }
      }

      // Ausgabe
 if (isprim=true)
      System.out.print("Die Zahl " + n + " ist eine Primzahl ");
     
   else
              System.out.println(" Die Zahl  "+n+   " ist keine Primzahl");
      }
   }
aber das gefält mir mit der sqr methode nicht, weil ich weiss das mein lehrer da wieder rumm nölt und es auch "einfacher" geht.kann ich eine for schleife nehmen um die methode zu ersetzen?
 
Huhu

Hier kannst du dir mein Programm anschauen...

Gruß
Aaron


public class test
{

public static void main(String[] args)
{
//System.out.print("\nGeben Sie bitte eine zahl ein: ");
int n = 5;

boolean x = isPrime(n);
if ( x == true )
{
System.out.println("Die eingegebene zahl ist eine Primzahl");
}
else
{
System.out.println("Die eingegebene zahl ist keine Primzahl");
}
}

public static boolean isPrime (int x)
{
if (x < 2) return false;

boolean isPrime = true;


for ( int i = 2; i*i <= x; i++ )
if ( x % i == 0 )
{
isPrime=false;
break;
}
return isPrime;
}
}
 
Zurück