2017-07-20 4 views
-2

Ich habe einen Code, der prüft, ob die Nummer Prime ist.Wie teile ich in [for(); ]

Ich möchte, dass der Code die Benutzereingabe nimmt und sie von 1 auf die Zahl teilt, die sie eingeben.

Wenn das Ergebnis 3 oder mehr Ergebnisse hat, ist Return falsch. (Primzahlen können nur durch 1 und sich selbst geteilt werden.)

Hier ist mein Code:

import java.util.Scanner; 

    public class PrimeNumber { 

    public static void main (String args[]) { 

    int num ; 
    System.out.print("Enter a number : "); 
    Scanner sc = new Scanner(System.in); 
    num = sc.nextInt(); 

    for (int n=1; num/n; n<num; n++){ 
     System.out.print(num + " is an integer. "); 
    } 
    } 
} 

Bei num/n;, es funktioniert nicht. Ich will num beginnen, von 1 zu trennen und seinen Weg zu sich selbst zu machen und zu stoppen.

Warum kann ich nicht innerhalb des Teils teilen. Ich verstehe die Logik, aber ich kann diesen Teil nicht zur Arbeit bringen.

+1

Sie sollten den Compilerfehler wirklich in Ihre Frage einschließen. Erklären Sie auch, welche Ergebnisse Sie erwarten, weil ich nicht verstehe, was Sie versuchen zu tun. –

+0

Ziemlich sicher, dass Ihr Code nicht kompiliert. Die für Ausdrücke sind falsch. –

+1

Sie verwenden die Anweisung 'for' nicht korrekt. In den Java-Lernprogrammen von Oracle finden Sie eine detaillierte Erklärung zur Verwendung des [for forward] (https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html). – Jesper

Antwort

1

for Das zweite Argument ist ein Boolescher Zustand sein: for(; boolean condition;) {}

Das zweite Argument ein Boolescher Zustand sein muss, nicht jeder beliebige Ausdruck. In Ihrem ursprünglichen Beitrag, wenn Sie es nur zum Kompilieren benötigen, passen Sie es an num/n>0 an. In der aktuellen Version, zum Kompilieren, müssen Sie es nur aus der Schleife for entfernen.

Aber wenn Sie wissen müssen, wenn eine Zahl prim ist, überprüfen Sie es: https://www.mkyong.com/java/how-to-determine-a-prime-number-in-java/

0

denke ich, was Sie versuchen

import java.util.Scanner; 
public class PrimeNumber { 
public static void main (String args[]) { 
    int num ; 
    System.out.print("Enter a number : "); 
    Scanner sc = new Scanner(System.in); 
    num = sc.nextInt(); 
    for (int n=1; n<num; n++){ 
     if (num % n == 0) 
      System.out.print(n + " is an factor. "); 
    } 
} 
} 
-1

Ich verstehe nicht zu tun ist, was Sie wollen Aber ich denke, es ist viel besser, wenn Sie versuchen, eine andere Bedingung zu verwenden.

If(n<num) 
{ 
    System.out.println(num + " is an integer. "); 
} 
else 
{ 
System.out.println("false"); 
}