Comment trouver les nombres premiers Java

Qu'est-ce qu'un nombre premier?

Quand j'essaie de résoudre le problème des professionnels compétitifs, je ne me souviens pas de ce que j'ai appris quand j'étais étudiant.

Qu'est-ce qu'un nombre premier, selon Wikipedia

Un nombre premier est un entier naturel supérieur à 1 et qui n'a qu'une fraction positive et lui-même. Il peut être reformulé comme un nombre naturel dans lequel le nombre de fractions positives est de 2.

C'est vrai. En d'autres termes, c'est un entier supérieur à ** 1, un nombre qui ne peut être divisé que par 1 et vous-même **.

Programme de jugement des nombres premiers

import java.util.Scanner;

public class PrimeNumber {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int target = sc.nextInt();

    if (target < 2) {
      System.out.println(target + "N'est pas un nombre premier.");
      return;
    }

    for (int i = 2; i < target; i++) {
      if (target % i == 0) {
        System.out.println(target + "N'est pas un nombre premier.");
        return;
      }
    }
    
    System.out.println(target + "Est un nombre premier.");
  }
}

Commentaire

Un entier supérieur à 1

    if (target < 2) {
      System.out.println(target + "N'est pas un nombre premier.");
      return;
    }

Ici, nous vérifions si l'entier est supérieur à ** 1, ce qui est significatif car c'est un nombre premier **. S'il est inférieur à 2, vous savez que ce n'est pas un nombre premier, alors sortez-le et terminez le processus immédiatement.

Un nombre qui ne peut être divisé que par 1 et vous-même

Après tout, c'est cette partie qui devient le cœur.

    for (int i = 2; i < target; i++) {
      if (target % i == 0) {
        System.out.println(target + "N'est pas un nombre premier.");
        return;
      }
    }
    
    System.out.println(target + "Est un nombre premier.");

Dans l'instruction for, divisez par le nombre de 2 à cible-1 un par un et vérifiez s'il est divisible. S'il y a même un nombre divisible, ce nombre n'est pas un nombre premier, alors sortez-le et terminez le processus avec return.

S'il n'y a pas de nombre divisible, «cible» est un nombre premier. : applaudir:

Accélérant

Comme moyen simple de savoir s'il s'agit d'un nombre premier, j'ai utilisé la méthode ci-dessus de division par 1 et tous les nombres à l'exception du nombre cible. Cependant, avec cette méthode, plus le nombre d'objets à examiner est grand, plus le calcul prendra du temps.

Donc, comme vous l'avez dit dans les commentaires, il semble que vous puissiez juger s'il s'agit d'un nombre premier ou non en ne vérifiant que les valeurs sous la racine carrée.

Pourquoi jusqu'à la racine carrée

Un nombre premier était un nombre qui n'était divisible que par 1 et lui-même, mais les autres nombres sont appelés nombres composés. En d'autres termes, un nombre composé est un nombre qui n'est ni 1 ni un nombre premier. En d'autres termes, le nombre composé est ** 1 et a au moins une fraction autre que lui-même **.

De plus, le nombre de composites a la propriété de ** avoir une fraction de ** √n ou moins.

Le nombre de composites a une fraction de √n ou moins

Pourquoi peut-on dire que le nombre composé a une fraction inférieure à √n?

Premièrement, le nombre composé n peut être exprimé par «n = ab» car il existe des nombres naturels a et b qui ne sont pas 1. Si n n'a pas de fraction inférieure ou égale à √n, alors √n <a, √n <b. √n est supérieur à 0, donc si √n <a, √n <b (n n'a pas de fraction inférieure ou égale à √n), √n√n (= n) ʻest ʻab Il sera plus petit que «n = ab». Par conséquent, on peut dire que n a un diviseur de √n ou moins.

En d'autres termes, si n est un nombre composé, il a une fraction inférieure à √x, donc si vous vérifiez s'il y a une fraction inférieure à √x, Vous pouvez déterminer si le nombre est un nombre premier!

Programme de jugement de Kai / nombre premier

import java.util.Scanner;

public class PrimeNumber {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int target = sc.nextInt();

    if (target < 2) {
      System.out.println(target + "N'est pas un nombre premier.");
      return;
    }
    if (target % 2 == 0) { //Le nombre pair revient en premier
      System.out.println(target + "N'est pas un nombre premier.");
      return;
    }

    for (int i = 3; i <= Math.sqrt(target); i+=2) {
      if (target % i == 0) {
        System.out.println(target + "N'est pas un nombre premier.");
        return;
      }
    }

    System.out.println(target + "Est un nombre premier.");
  }
}

Recommended Posts

Comment trouver les nombres premiers Java
[Java] Trouvez le nombre premier avec le tamis Eratostenes
Comment abaisser la version java
[Java] Comment utiliser Map
Comment désinstaller Java 8 (Mac)
Comment utiliser java Facultatif
Comment réduire les images Java
Comment rédiger un commentaire java
Comment utiliser la classe Java
[Java] Comment utiliser removeAll ()
[Java] Comment afficher les Wingdings
Comment utiliser Java Map
Comment définir des constantes Java
Calculer des nombres premiers en Java
Comment utiliser les variables Java
[Java] Comment implémenter le multithreading
Comment initialiser un tableau Java
[Java] Trouvez le nombre premier avec le tamis Eratostenes (Partie 2)
Comment trouver May'n dans XPath
Comment étudier Java Silver SE 8
Comment utiliser HttpClient de Java (Get)
Étudier Java # 6 (Comment écrire des blocs)
Comment trouver l'angle moyen
Différence entre Java et JavaScript (comment trouver la moyenne)
Comment créer un conteneur Java
Comment désassembler un fichier de classe Java
Comment utiliser HttpClient de Java (Post)
[Java] Comment utiliser la méthode de jointure
[Traitement × Java] Comment utiliser les variables
Comment décompiler un fichier de classe Java
[JavaFX] [Java8] Comment utiliser GridPane
Comment écrire une déclaration de variable Java
Comment utiliser les méthodes de classe [Java]
[Java] Comment utiliser List [ArrayList]
Comment nommer des variables en Java
Comment passer Oracle Java Silver
Comment activer Iterator Dojo (Java)
[Traitement × Java] Comment utiliser les tableaux
Comment créer un tableau Java
Comment utiliser les expressions Java lambda
[Java] Comment utiliser la classe Math
Comment utiliser le type enum Java
Comment concaténer des chaînes avec Java
Comment vérifier Java installé sur Mac
Comment implémenter le calcul de la date en Java
Comment implémenter le filtre de Kalman par Java
Prise en charge multilingue de Java Comment utiliser les paramètres régionaux
[Java] Comment utiliser la classe File
Comment compiler Java avec VsCode & Ant
[Java] Résumez comment comparer avec la méthode equals
Découvrez comment Java protège l'intégrité des types
[java] Résumé de la gestion des caractères
[Java] Comment ajouter des données à la liste (add, addAll)
Comment utiliser la méthode de soumission (Java Silver)