CSS Trouver des nombres premiers
Les nombres premiers sont des nombres naturels qui ne peuvent être divisés que par 1 et par lui-même. En programmation, trouver des nombres premiers est une exigence courante et un facteur important dans l’efficacité du programme.
Récemment, une question intéressante s'est posée : Comment utiliser CSS pour trouver tous les nombres premiers inférieurs ou égaux à un certain nombre ?
Lorsque vous entendez cette question pour la première fois, vous pourriez vous sentir confus. Après tout, CSS est un langage de feuille de style utilisé pour embellir les pages Web. La syntaxe et les fonctionnalités du CSS n'ont rien à voir avec les opérations mathématiques et ne prennent même pas en charge les calculs logiques.
Cependant, cela ne nous empêche pas d'évoquer cette question. En fait, CSS peut également utiliser des techniques spéciales pour réaliser des tâches apparemment impossibles lors du rendu de la page.
Voyons maintenant comment utiliser CSS pour trouver tous les nombres premiers inférieurs ou égaux à un certain nombre.
Étape 1 : Déterminer le nombre cible
Tout d'abord, nous devons déterminer la plage requise de nombres premiers. Dans cet article, nous prenons 100 comme exemple, c'est-à-dire trouvons tous les nombres premiers inférieurs ou égaux à 100.
Étape 2 : Générer une liste de nombres
Ensuite, nous devons utiliser CSS pour générer une liste de nombres. Puisque CSS ne prend pas en charge les boucles et les jugements logiques, nous ne pouvons utiliser que certaines propriétés spéciales de CSS pour obtenir un effet de boucle.
Ici, nous utilisons la propriété counter de CSS, qui peut nous aider à générer automatiquement une séquence de nombres. Afin de générer une séquence de nombres de 2 à 100, nous devons définir un compteur en CSS, en commençant à partir de 2 et en incrémentant de 1 à chaque fois. La valeur initiale et la valeur maximale du compteur sont respectivement fixées à 2 et 100. Le code est le suivant :
body { counter-reset: counter 2; }
La signification de ce code est : Définissez un compteur nommé counter pour l'élément body, avec une valeur initiale de 2.
Ensuite, nous devons configurer un compteur pour chaque élément numérique. Afin de générer une suite de nombres de 2 à 100, on peut utiliser la méthode suivante :
.numbers { counter-increment: counter; }
La signification de ce code est : augmenter la valeur du compteur nommé compteur de 1 à chaque fois.
À ce stade, nous avons généré une calculatrice pour une séquence de nombres, et une liste de nombres peut être implémentée en utilisant le pseudo-élément CSS ::before. Dans le code précédent, nous avons défini une classe nommée nombres pour le corps, puis nous avons ajouté un élément enfant pour chaque élément en nombres. Le code est le suivant :
.numbers::before { content: counter(counter) ' '; }
La signification de ce code est : ajoutez un pseudo-élément ::before devant l'élément numérique pour afficher la valeur actuelle du compteur, qui est le nombre.
Avec le code CSS ci-dessus, nous pouvons générer une séquence de nombres de 2 à 100.
Étape 3 : Filtrer les nombres premiers
Maintenant, nous avons généré une séquence de nombres de 2 à 100, mais elle contient de nombreux nombres non premiers. Afin de filtrer les nombres premiers, nous pouvons utiliser le sélecteur d'attribut CSS.
Le sélecteur d'attribut peut sélectionner les éléments correspondants en spécifiant le nom et la valeur de l'attribut. Ici, nous pouvons spécifier l'attribut data-prime de l'élément numérique comme premier, indiquant que l'élément est un nombre premier. Le code ressemble à ceci :
.numbers[data-prime='prime'] { color: red; }
Selon la définition des nombres premiers, un nombre n'est premier que s'il ne peut être divisé par aucun nombre premier inférieur à ce nombre. Supposons que le nombre actuel soit n, nous pouvons utiliser le sélecteur d'attribut pour rechercher tous les nombres premiers inférieurs à n. Le code ressemble à ceci :
.numbers:not([data-prime='not-prime']):not(:nth-of-type(1)):before { content: counter(counter) ' '; display: none; }
La signification de ce code est : si l'élément numérique actuel n'est pas un nombre non premier (c'est-à-dire non divisible par un nombre premier inférieur à ce nombre), et n'est pas le premier élément du séquence de nombres (c'est-à-dire 2), puis cachez le numéro dans le pseudo-élément ::before.
Afin de faire ressortir les nombres premiers, nous pouvons également leur définir une couleur rouge. Le code est le suivant :
.numbers[data-prime='prime'] { color: red; }
Étape 4 : Affichage du résultat
Enfin, il suffit d'ajouter un élément conteneur avec une séquence de chiffres au HTML pour voir le résultat final. Le code est le suivant :
<div class="numbers" data-prime="prime">2</div> <div class="numbers" data-prime="prime">3</div> <div class="numbers" data-prime="prime">4</div> <div class="numbers" data-prime="prime">5</div> ...
Exécutez le code ci-dessus et vous pourrez voir tous les nombres premiers inférieurs ou égaux à 100 dans le navigateur.
Conclusion
Bien que l'utilisation de CSS pour trouver des nombres premiers soit une question étrange, elle démontre la puissance du CSS. En utilisant l'attribut compteur et les sélecteurs d'attributs, nous pouvons implémenter un programme capable de générer une séquence de nombres et de filtrer les nombres premiers sans utiliser JavaScript.
Bien sûr, cette méthode est plus gênante et moins efficace. Si vous souhaitez trouver un nombre premier relativement grand, il est recommandé d'utiliser un langage informatique, tel que JavaScript, pour y parvenir. Cependant, dans certains cas particuliers, comme dans les animations CSS, il est utile d'utiliser cette technique.
En bref, la programmation elle-même est un processus d'exploration, et différents langages de programmation ont des caractéristiques, des avantages et des inconvénients différents. Ce n'est qu'en apprenant à utiliser les fonctionnalités de ces langages que vous pourrez véritablement libérer leur puissance.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!