[Java] Trouvez le nombre premier avec le tamis Eratostenes

introduction

Dans mon développement habituel, je n'ai pas la chance de toucher à l'algorithme du manuel, j'ai donc écrit un code pour trouver un nombre premier en utilisant "le tamis d'Eratostène" comme exercice cérébral.

code

PrimeNumberFinder.java


static void printPrimeNumbers(int maxNumber) {

	//Étape 1: Mettez "entier de 2 à la limite supérieure" dans la liste de recherche.
	List<Integer> targetNumbers = IntStream.rangeClosed(2, maxNumber).boxed().collect(Collectors.toList());

	//Liste des nombres premiers
	List<Integer> primeNumbers = new ArrayList<Integer>();

	int sqrt = (int) Math.sqrt(maxNumber);

	//Étape 3: Continuez l'opération de tamisage jusqu'à ce que la première valeur de la liste de recherche atteigne la racine carrée de l'argument.
	while(targetNumbers.get(0)<=sqrt) {
		//Étape 2: Placez le premier nombre de la liste de recherche dans la liste des nombres premiers et filtrez les multiples de la liste de recherche.
		int firstNum = targetNumbers.get(0);
		primeNumbers.add(firstNum);
		targetNumbers.removeIf(num -> (num % firstNum == 0));
	}

	//Étape 4: Déplacez les valeurs restantes dans la liste de recherche vers la liste des nombres premiers et terminez le processus.
	primeNumbers.addAll(targetNumbers);

	//Affichage des nombres premiers
	System.out.println(primeNumbers.stream().map(pNum -> pNum.toString()).collect(Collectors.joining("\t")));
}
//Résultat de sortie lorsque 100 est spécifié dans l'argument de printPrimeNumbers
2	3	5	7	11	13	17	19	23	29	31	37	41	43	47	53	59	61	67	71	73	79	83	89	97	

De côté

Recommended Posts

[Java] Trouvez le nombre premier avec le tamis Eratostenes
[Java] Trouvez le nombre premier avec le tamis Eratostenes (Partie 2)
Comment trouver les nombres premiers Java
Calculer des nombres premiers en Java
Créer une classe immuable avec JAVA
Exécuter des applications écrites en Java8 en Java6
[Java] Créer un module exécutable avec Gradle
[Algorithme] N nombres avec un intervalle de X
Juger les nombres premiers
Essayez d'implémenter le tamis Eratostenes en utilisant la bibliothèque standard de Java
Implémentez rapidement singleton avec enum en Java