Note: The other languages of the website are Google-translated. Back to English
English English

Comment vérifier si le nombre est un nombre premier dans Excel?

Comme nous le savons tous, un nombre premier est un nombre naturel qui ne contient que deux diviseurs naturels distincts : Un et lui-même. Si vous avez une liste de nombres dans une feuille de calcul, comment pourriez-vous vérifier si les nombres sont des nombres premiers ?

Vérifiez si un nombre est un nombre premier avec une formule matricielle

Vérifiez si un nombre est un nombre premier avec la fonction définie par l'utilisateur


flèche bleue bulle droite Vérifiez si un nombre est un nombre premier avec une formule matricielle

La formule suivante peut vous aider à identifier le nombre, qu'il s'agisse d'un nombre premier ou non, procédez comme suit:

1. Entrez la formule suivante dans une cellule vide - C2 par exemple à côté de vos données:

=IF(A2=2,"Prime",IF(AND(MOD(A2,ROW(INDIRECT("2:"&ROUNDUP(SQRT(A2),0))))<>0),"Prime","Not Prime")) (A2 est-ce que la cellule contient le numéro que vous souhaitez vérifier), puis appuyez sur Ctrl + Maj + Entrée clés ensemble, et vous obtiendrez le résultat, si le nombre est premier, il affichera "Prime" dans la cellule, sinon, "Not Prime" sera affiché, voir capture d'écran:

doc vérifier si premier 1

2. Sélectionnez ensuite la cellule C2 et faites glisser la poignée de recopie vers les cellules auxquelles vous souhaitez appliquer cette formule, et tous les nombres seront identifiés s'il s'agit d'un nombre premier ou non. Voir la capture d'écran:

doc vérifier si premier 2


flèche bleue bulle droite Vérifiez si un nombre est un nombre premier avec la fonction définie par l'utilisateur

Fonction définie par l'utilisateur peut également vous aider à vérifier les nombres premiers ou non, procédez comme suit:

1. Maintenez le ALT + F11 clés pour ouvrir le Microsoft Visual Basic pour applications fenêtre.

2Cliquez sur insérer > Moduleet collez le code suivant dans le Fenêtre du module.

Code VBA: vérifiez si un nombre est premier ou non:

Function CheckPrime(Numb As Single) As Boolean
'Updateby Extendoffice
    Dim X As Long
    If Numb < 2 Or (Numb <> 2 And Numb Mod 2 = 0) _
     Or Numb <> Int(Numb) Then Exit Function
    For X = 3 To Sqr(Numb) Step 2
        If Numb Mod X = 0 Then Exit Function
    Next
    CheckPrime = True
End Function

3. Ensuite, enregistrez et fermez ce code, revenez à la feuille de calcul et entrez cette formule: = checkprime (A2) dans une cellule vide à côté de votre liste de numéros, puis faites glisser la poignée de remplissage vers les cellules que vous souhaitez contenir cette formule, si le nombre est un nombre premier, il affichera VRAI, sinon, il affichera FALSE, voir capture d'écran:

doc vérifier si premier 3


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtréeplus
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammesplus
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellulesplus
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDFplus
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2019 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!
bas de cabine
Commentaires (21)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, j'aime bien votre article. Merci beaucoup. Mes tests simples ont montré que 99 était un nombre premier alors que 99 ne l'est pas car 99 est divisé par 3 et 33 ainsi que 1 et 99. Pouvez-vous me dire ce qui ne va pas avec mon opération ?
Ce commentaire a été minimisé par le modérateur sur le site
La formule matricielle ci-dessus ne fonctionne pas, mais la fonction définie par l'utilisateur fonctionne et a été très utile. Merci !
Ce commentaire a été minimisé par le modérateur sur le site
La formule matricielle ne fonctionne pas, mais la fonction définie par l'utilisateur fonctionne et a été très utile. Merci!
Ce commentaire a été minimisé par le modérateur sur le site
La fonction définie par l'utilisateur ne semble pas fonctionner pour les nombres supérieurs à ~16777213
Ce commentaire a été minimisé par le modérateur sur le site
Sub generateprimenumbersbetween() starting_number = 99990 'valeur d'entrée ici last_number = 99999 'valeur d'entrée ici nombres premiers = "" For a = starting_number To last_number For b = 2 To a If a - b * Int(a / b) = 0 And ab Then Exit For Else If a = b Then nombres premiers = nombres premiers & " " & a End If End If Next b Next a MsgBox nombres premiers End Sub Function nombres premiers entre (numéro_debut, dernier_nombre) nombres premiers = "" For a = nombre_debut To last_number For b = 2 To a Si a - b * Int(a / b) = 0 And ab Then Exit For Else If a = b Then nombres premiers = nombres premiers & " " & a End If End If Next b Next a nombres premiers entre = nombres premiers End Function 'pour vérifier si un nombre est premier Sub ISPRIME() number_to_be_checked = 102 'valeur d'entrée ici For b = 2 To number_to_be_checked If number_to_be_checked - b * Int(number_to_be_checked / b) = 0 And _ number_to_be_checked b Then MsgBox "Non premier. Divisible par " & b Quitter Sub Else If number_to_be_checked = b Then MsgBox "Prime" End If End If Next b End S ub ' pour vérifier si un nombre est premier Function ISPRIME2(number_to_be_checked) For b = 2 To number_to_be_checked If number_to_be_checked - b * Int(number_to_be_checked / b) = 0 And _ number_to_be_checked b Then ISPRIME2 = "Not Prime. Divisible par " & b Quitter la fonction Sinon Si nombre_à_vérifier = b Alors ISPRIME2 = "Prime" Fin Si Fin Si Suivant b Fin de la fonction
Ce commentaire a été minimisé par le modérateur sur le site
c'est ma version la plus rapide Sub generateprimenumbersbetween3() starting_number = 1 'valeur d'entrée ici last_number = 30000 'valeur d'entrée ici nombres premiers = "" For a = starting_number To last_number c = a For b = 2 To c If a Mod b = 0 And cb Then Exit For Else If b = c Alors nombres premiers = nombres premiers & " " & a Sortie Pour Sinon Si Arrondi(a / (b + 1)) + 1 > b Alors c = Arrondi(a / (b + 1)) + 1 Fin Si Fin Si Fin If Next b Next a MsgBox nombres premiers End Sub Sub ISPRIME3() number_to_be_checked = 2000000000 'valeur d'entrée ici c = number_to_be_checked For b = 2 To c If number_to_be_checked Mod b = 0 And cb Then MsgBox "Not Prime. Divisible by " & b Exit Sub Else If b = c Then MsgBox "Prime" Exit Sub Else If Round(number_to_be_checked / (b + 1)) + 1 > b Then c = Round(number_to_be_checked / (b + 1)) + 1 End If End If End If Next bEnd Sub
Ce commentaire a été minimisé par le modérateur sur le site
Votre formule ne fonctionne pas. Par exemple. 1681 n'est PAS un nombre premier mais par formule il l'est.
=IF(A2=2,"Prime",IF(AND(MOD(A2,ROW(INDIRECT("2:"&ROUNDUP(SQRT(A2),0))))<>0),"Prime","Not Prime"))
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour Jan,
La formule ci-dessus est correcte, après avoir collé la formule dans une cellule, vous devez appuyer simultanément sur les touches Ctrl + Maj + Entrée, pas seulement sur la touche Entrée.
Veuillez réessayer, merci !
Ce commentaire a été minimisé par le modérateur sur le site
Oui, c'était le cas avec le CST. Merci (c'est corrigé maintenant).
https://superuser.com/questions/674566/when-to-use-ctrlshiftenter-and-when-to-use-enter-in-excel

Btw variante tchèque à :
=IF(A2=2,"Prime",IF(AND(MOD(A2,ROW(INDIRECT("2:"&ROUNDUP(SQRT(A2),0))))<>0),"Prime","Not Prime"))
est:
=KDYŽ(A2=2;"Prime";KDYŽ(A(MOD(A2;ŘÁDEK(NEPŘÍMÝ.ODKAZ("2:"&ROUNDUP(ODMOCNINA(A2);0))))<>0);"Prime";"Not Prime"))

Comparez: https://imgur.com/a/4MgeV
Ce commentaire a été minimisé par le modérateur sur le site
bien 4095 n'est pas premier. il donne toujours le résultat comme premier non cependant. c'est incorrect.
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour Vaibhav,
Lorsque vous collez la formule ci-dessus, vous devez appuyer simultanément sur les touches Ctrl + Maj + Entrée, pas seulement sur la touche Entrée, veuillez réessayer.
Ce commentaire a été minimisé par le modérateur sur le site
Une erreur de référence se produit lorsque vous saisissez des nombres comportant plus de 12 chiffres.
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour Nathan,
Comme vous l'avez dit, lorsque les nombres dépassent 12 chiffres, cela deviendra une notation scientifique. La formule n'est pas appliquée pour ce formatage.
Ce commentaire a été minimisé par le modérateur sur le site
Oui, cela a fonctionné quand j'ai fait Ctrl + Maj + Entrée... !! Merci ..:D et cela vous dérangerait d'expliquer l'algorithme s'il vous plaît.
Ce commentaire a été minimisé par le modérateur sur le site
Salut.

J'utilise une version italienne d'Excel, donc la formule ne fonctionne pas et j'ai une erreur. Pouvez-vous m'aider?

Merci d'avance
Ce commentaire a été minimisé par le modérateur sur le site
Salut Gian,
Si la formule ne fonctionne pas correctement pour vous, vous pouvez appliquer la deuxième méthode, la fonction définie par l'utilisateur. S'il vous plaît essayez, j'espère que cela peut vous aider!
Merci !
Ce commentaire a été minimisé par le modérateur sur le site
Salut skyyang.
Si cela peut servir à d'autres chercheurs, je vous informe que j'ai trouvé la solution à mon problème ici => http://www.riolab.org/index.php?option=com_content&view=article&id=172&Itemid=68

Merci !
Ce commentaire a été minimisé par le modérateur sur le site
Il y a certainement un problème avec cette équation. J'ai fait un copier/coller direct et j'ai vérifié que c'était une copie fidèle mais il y a toujours 9, 15, 21, 25, 33, 35 et 39 comme nombres premiers alors qu'ils ne le sont évidemment pas. Lors d'une inspection rapide, il semble que les facteurs de 3 et 5 donnent lieu à une sorte de problème. C'est une formule très compliquée pour une seule cellule - à tel point que je ne peux pas comprendre ce qu'elle essaie de faire. Je décompose généralement ces éléments en plusieurs cellules pour faciliter le débogage (ce qui, je crois, est la meilleure pratique d'Excel).
Ce commentaire a été minimisé par le modérateur sur le site
Il y a certainement un problème avec cette équation. J'ai fait un copier/coller direct et j'ai vérifié que c'était une copie fidèle mais il y a toujours 9, 15, 21, 25, 33, 35 et 39 comme nombres premiers alors qu'ils ne le sont évidemment pas. Lors d'une inspection rapide, il semble que les facteurs de 3 et 5 donnent lieu à une sorte de problème. C'est une formule très compliquée pour une seule cellule - à tel point que je ne peux pas comprendre ce qu'elle essaie de faire. Je décompose généralement ces éléments en plusieurs cellules pour faciliter le débogage (ce qui, je crois, est la meilleure pratique d'Excel). La fonction semble fonctionner, cependant.
Ce commentaire a été minimisé par le modérateur sur le site
NE PAS SAISIR LES FORMULES DANS LA CELLULE. Sélectionnez la cellule puis collez les formules dans la barre de formules et appuyez sur ctrl+maj+Entrée. il devrait mettre {autour des formules} sinon c'est faux.
Ce commentaire a été minimisé par le modérateur sur le site
Craig, merci - ça marche ! Désolé, je n'ai pas lu les instructions suffisamment attentivement.
Il n'y a pas encore de commentaires postés ici
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés