Ich habe ein Programm zur Beurteilung von Primzahlen in Java erstellt

Einführung

Dieser Beitrag richtet sich an Anfänger, die Java selbst lernen und Programme durch Ausprobieren mit originellen Ideen schreiben möchten (während sie ein wenig nachforschen). Außerdem wird Code veröffentlicht, der mit Selbstzufriedenheit überhaupt nicht hilfreich ist. Es ist etwas zu tun.

Gleichzeitig mit der Beobachtung des Wachstums von Anfängern mit warmen Augen denke ich, dass es natürlich Orte gibt, an denen Sie die Meinung "Nein, das ist seltsam (# ゚ Д ゚)!?" Haben. Sie können sich also in diesem Fall dazu äußern. Bitte.

Über das Posten auf Qiita

Dies ist der zweite Beitrag. Wenn ich auf den Satz zurückblicke, den ich neulich gepostet habe, habe ich falsch verstanden, dass die Beschreibungsmethode in Qiita im HTML-Format war, aber es gibt eine Markdown-Beschreibungsmethode, und dieses Mal möchte ich sie auf diese Weise schreiben. Vielen Dank für Ihren Professor m (_ _) m Ich hoffe es wird leichter zu sehen sein.

Programm zur Beurteilung der Primzahl, das im Interview beschrieben wird

(* Als ich nach Hause ging und versuchte zu kompilieren, bekam ich einen Fehler, daher werde ich den korrigierten posten.) (* Ich benutze auch die Random-Klasse, aber ich habe dies kürzlich gelernt, also habe ich es eine Weile versucht.)

Neulich wurde ich gebeten, ein Primzahl-Beurteilungsprogramm mit Java zu erstellen, und der folgende Code wurde mit einem Doy-Gesicht geschrieben.

System.out.println("Zufälliges Programm zur Beurteilung von Primzahlen");
java.util.Random rm = new java.util.Random();
int s = rm.nextInt(100);

if (s == 2 || s == 3) {
    System.out.println(s + "Ist eine Primzahl");
} else if (s % 2 == 0 || s % 3 == 0) {
    System.out.println(s + "Ist keine Primzahl");
} else {
    System.out.println(s + "Ist eine Primzahl");
}

(Abgesehen von dem Tsukkomi, dass der Code schmutzig ist)

** Zunächst einmal kannten Sie die "Definition von Primzahlen" nicht. ** **.

(Ich mag diese Art von mathematischem Problem, weil ich eine literarische Person bin, aber ich erinnere mich an die Formeln und so weiter jenseits des Universums)

Laut Wikipedia-Lehrer

"Eine Primzahl ist eine natürliche Zahl, die keine anderen Brüche als die offensichtlichen positiven Brüche (1 und sich selbst) hat und nicht 1 ist. 』\

Nun, der Punkt ist

** Ich denke, dass eine natürliche Zahl, die nur durch die Zahl selbst und 1 geteilt werden kann, eine Primzahl ist, und wenn sie durch eine andere Zahl teilbar ist, ist sie keine Primzahl. ** **.

Zum Beispiel scheint es unendlich wie 2,3,5,7,11 zu springen.

Wenn ich das obige Programm ein wenig erkläre, kann es fehlerfrei kompiliert werden, aber selbst Zahlen, die keine Primzahlen sind, werden als Primzahlen beurteilt.

Ein solches Programm wird aus der Idee vervollständigt, dass wenn n durch 2 teilbar ist, es eine gerade Zahl ist und wenn n durch 3 teilbar ist, n eine ungerade Zahl ist.

Zum Beispiel ist 121 das Quadrat von 11, es ist also keine Primzahl, aber es ist nicht durch 2 oder 3 teilbar, also wird es als Primzahl beurteilt.

(Es ist ein wenig peinlich, wenn man vom ersten Schuljahr an neu anfängt.)

Programm zur Beurteilung der Primzahl

System.out.println("Programm zur Beurteilung der Primzahl");
int v = 123;
System.out.println("Die eingegebene Nummer ist "" + v + ""ist");

if (v < 2) {
    System.out.println("Es wurde eine Zahl unter 2 eingegeben");
} else if (v == 2) {
    System.out.println(v + "Ist eine Primzahl");
} else {
    boolean issosu = true;
    for (int u = 2; u < v; u++) {
        if (v % u == 0) {
            is = false;
        }
    }

    if (isSosu) {
        System.out.println(v + "Ist eine Primzahl");
    } else {
        System.out.println(v + "Ist keine Primzahl");
    }
}

(Abgesehen von dem Tsukkomi, dass der Code schmutzig ist)

Ich fürchte, dies wird die Primzahl korrekt bestimmen, aber die Fertigstellung dauerte zwei Tage. Ich habe mit meinem Bruder darüber gesprochen, welche Art von Zahlen Primzahlen sind, und wenn sie durch 2 teilbar sind, ist es eine gerade Zahl, und von anderen Zahlen ist eine natürliche Zahl, die nicht das Quadrat einer bestimmten Zahl ist, eine Primzahl Hier ist die Antwort, die herauskam, als man sich auf die Netzsuche stützte

"** n, das nicht durch eine Zahl kleiner als die natürliche Zahl n teilbar ist, ist eine Primzahl **"

Außerdem

"** n ist eine Primzahl, wenn n 2 ist, Fehler ** wenn n kleiner als 2 ist"

Nachdem n im Voraus auf Zahlen größer als 2 begrenzt wurde, wird ein Programm erstellt, das feststellt, dass "eine Zahl, die nicht durch n> v teilbar ist" oder "eine Zahl, die nicht durch n> = n-1 teilbar ist", eine Primzahl ist. tat.

Wenn Sie jedoch einfach die for-Anweisung verwenden,

5 ist keine Primzahl 5 ist keine Primzahl 5 ist eine Primzahl 5 ist keine Primzahl 5 ist keine Primzahl . . . Ich begann zu beurteilen, ob 5 (die eingegebene Zahl) eine Primzahl mit der im for-Satz ausgedrückten Zahl war, und ich kämpfte hart.

Nun, ich wusste nicht, wie ich es lösen sollte, also habe ich ein bisschen gegoogelt, aber ich habe die Variable isSosu mit dem booleschen Typ definiert und den Anfangswert auf true gesetzt. Dann wird in der for-Anweisung u zwischen Zahlen 1 kleiner als v geschleift, und wenn u% v == 0 ist, ist u durch eine natürliche Zahl teilbar, die kleiner als seine eigene Zahl ist. Ersetzen Sie isSosu durch false. Auf diese Weise ist es falsch, wenn es teilbar ist, und in anderen Fällen kann es erneut berücksichtigt werden, und wenn (isSosu) {... und true case kann System.out.println sein. tat. (Hmm, das ist schwer zu verstehen.)

Es war bedauerlich, dass ich es nicht ganz alleine schaffen konnte, weil ich nicht auf die Verwendung des Booleschen Typs achten konnte und es gegoogelt habe, aber wenn ein Anfänger mit dem Wissen eines Einführungsbuchs ein Primzahl-Beurteilungsprogramm erstellt, dann dieses Ich frage mich, ob es so sein wird, aber ich denke, es gibt wahrscheinlich eine bessere und effizientere Möglichkeit, es zu schreiben. Ich bin nicht gut in Mathematik und habe noch nicht viele Java-Programme geschrieben.

Daher denke ich vorerst, dass die Fähigkeit, dieses Primzahl-Beurteilungsprogramm zu schreiben, eines der Hindernisse für den Beweis ist, wenn geprüft wird, ob das Programm zusammengestellt werden kann. Ich denke, dass ein Anfänger einige Probleme beim Erstellen eines Programms lösen wird, aber eine der Antworten lautet wie folgt: Ich hoffe, Sie können es lesen, als ob Sie es sehen möchten. Ich denke.

Recommended Posts

Ich habe ein Programm zur Beurteilung von Primzahlen in Java erstellt
Ich habe ein Programm zur Beurteilung von Primzahlen in Java geschrieben
[Anfänger] Ich habe ein Programm zum Verkauf von Kuchen in Java erstellt
Ich habe ein Janken-Spiel in Java (CLI) gemacht.
Ich habe ein Primfaktorisierungsprogramm in Java geschrieben
Ich habe ein Roulette in Java gemacht.
Ich habe ein einfaches Berechnungsproblemspiel in Java gemacht
Ich habe ein PDF mit Java erstellt.
Ich habe eine shopify App @java erstellt
Ich habe eine Anmerkung in Java gemacht.
Primzahlbeurteilung Java
Ich habe ein neues Java-Bereitstellungstool erstellt
Ich habe versucht, ein Programm in Java zu erstellen, das das Problem des Handlungsreisenden mit einem genetischen Algorithmus löst
Ich habe ein Diff-Tool für Java-Dateien erstellt
Ich wollte (a == 1 && a == 2 && a == 3) in Java wahr machen
Ich habe eine Ruby-Erweiterungsbibliothek in C erstellt
Ich habe versucht, eine Clova-Fähigkeit in Java zu erstellen
Ich habe versucht, eine Anmeldefunktion mit Java zu erstellen
Ich habe im Frühjahr einen Restful-Server und -Client erstellt.
Was ich beim Erstellen eines Servers in Java gelernt habe
Ich habe einen Wrapper erstellt, der KNP von Java aus aufruft
Rufen Sie ein in Swift geschriebenes Programm von Processing (Java) auf.
Ich habe eine Chat-App erstellt.
Schnellstes Primzahl-Beurteilungsprogramm C # Java C ++
Suchen Sie eine Teilmenge in Java
Nullsicheres Programm in Java (Eclipse)
Ich habe versucht, Metaprogrammierung mit Java
Ich wollte nur eine reaktive Eigenschaft in Java erstellen
Selbst in Java möchte ich true mit == 1 && a == 2 && a == 3 ausgeben
Ich habe versucht, in Java von einer Zeichenfolge in einen LocalDate-Typ zu konvertieren
Ich habe Randoop untersucht, einen JUnit-Testklassengenerator für Java.
Ich habe einen RESAS-API-Client in Java erstellt
Ich habe eine Docker-Datei erstellt, um Glassfish 5 mit Oracle Java zu starten
Erstellt das JAVA-Framework "numatrix", das auf einfache Weise eindeutige numerische Werte in einer verteilten Umgebung und mit mehreren Threads generiert
Implementieren Sie einen tabellengesteuerten Test in Java 14
Ich habe eine E-Mail in Java gesendet
3 Implementieren Sie einen einfachen Interpreter in Java
Ich habe mit Swing eine GUI erstellt
Ich habe Gordobachs Theorem in Java geschrieben
Ein einfaches Beispiel für Rückrufe in Java
Ich habe eine einfache Empfehlungsfunktion erstellt.
Erstellen Sie ein Servlet-Programm in Eclipse
Ich habe versucht, JWT in Java zu verwenden
Altersschätzspiel mit Java gemacht
Bleiben Sie in einem Java Primer stecken
Ich habe eine passende App erstellt (Android App)
Beispielautomat mit Java
Ich habe ein Tool zur Generierung von package.xml erstellt.
[Android] Ich habe eine Schrittzähler-App erstellt.
Ich habe ein "Sunshine Ikezaki-Spiel" gemacht, das ich auf Twitter in Java gesehen habe.
Benötige ich einen Test, wenn ich DDD in einer Sprache mit einem Typ mache?
Ich kann in IntelliJ keine Java-Klasse mit einem bestimmten Namen erstellen
[Anmerkung] Was ich in einem halben Jahr von unerfahrenen (Java) gelernt habe
[Anmerkung] Was ich in einem halben Jahr von unerfahrenen (Java) gelernt habe (1)
Ich habe den Java-Test Level 2 bestanden und werde eine Notiz hinterlassen
Ich habe kürzlich eine JS-App in der gemunkelten Dart-Sprache erstellt
Ich habe eine Sterling-Sorte geschrieben, die sich wie in Java anfühlt
Erstellt eine Methode zum Anfordern von Premium Friday (Java 8-Version)
Ich habe ein Routensuchprogramm in TDD geschrieben und versucht, es umzugestalten