Prime Number Checker dans Excel VBA
Ci-dessous, nous examinerons un programme dans Excel VBA qui vérifie si un nombre est un nombre premier ou non.
Avant de commencer: en mathématiques, un nombre premier est un nombre qui a exactement deux diviseurs distincts nombre: 1 et lui-même. Les plus petites vingt-cinq nombres premiers sont les suivantes: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73 , 79, 83, 89 et 97. Par exemple, 8 a 1, 2, 4 et 8, et n’est pas diviseurs un nombre premier.
Situation:
-
Tout d’abord, nous déclarons trois variables. Une variable entier que nous appelons diviseurs, une variable à long nous numéro d’appel et une variable longtemps que nous appelons i. Nous utilisons des variables longues ici parce que les variables ont une plus grande capacité à long que les variables entières.
Dim divisors As Integer, number As Long, i As Long
-
Nous initialisons deux variables. Nous initialisons les variables avec diviseurs valeur 0. Nous utilisons la fonction InputBox pour obtenir un numéro de l’utilisateur.
divisors = 0 number = InputBox("Enter a number")
Après que l’utilisateur a entré un numéro, nous voulons vérifier si ce nombre est un nombre premier ou non. Rappelez-vous, un nombre premier a exactement deux diviseurs distincts nombre: 1 et lui-même.
-
Nous commençons une boucle For Next.
For i = 1 To number
-
Maintenant vient la partie la plus importante du programme. Pour calculer le nombre de diviseurs d’un nombre, nous utilisons l’opérateur Mod. L’opérateur Mod donne le reste d’une division. Donc, 7 mod 2 donnerait 1. 7 est divisé par 2 (3 fois) pour donner un reste de 1. Seulement si « nombre mod i » est égal à 0, i est un diviseur du nombre. Dans ce cas, nous voulons augmenter la variable par 1. la diviseurs macro ci-dessous ne l’affaire.
If number Mod i = 0 Then divisors = divisors + 1 End If
contrôles Excel VBA ceci pour i = 1, i = 2, i = 3, i = 4 jusqu’à ce que i = nombre.
-
Notez que i = 1 et i = nombre toujours sont diviseurs de nombre que si ces chiffres sont les seuls diviseurs de nombre, le nombre est un nombre premier
-
ne pas oublier de fermer la boucle.. 6. Si
-
Next i
est égal à 2 diviseurs, nous affichons un msgbox disant que le nombre entré est un nombre premier. Si le nombre de diviseurs est supérieur à 2, nous affichons un msgbox en disant que le nombre entré est pas un nombre premier
If divisors = 2 Then MsgBox number & " is a prime number" Else MsgBox number & " is not a prime number" End If
-
Tester le programme
Résultat 104729:..