Kontrol af primtal i Excel VBA - nemme Excel -makroer

Indholdsfortegnelse

Nedenfor ser vi på et program i Excel VBA at kontroller om et tal er et primtal eller ikke.

Inden du starter: i matematik er et primtal et tal, der har præcis to adskilte taldelere: 1 og sig selv. De mindste femogtyve primtal er: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73 , 79, 83, 89 og 97. For eksempel har 8 1, 2, 4 og 8 som divisorer og er ikke et primtal.

Situation:

1. For det første erklærer vi tre variabler. En heltalsvariabel kalder vi divisorer, en lang variabel kalder vi nummer og en lang variabel kalder vi i. Vi bruger lange variabler her, fordi lange variabler har større kapacitet end Integer -variabler.

Dim divisors As Integer, number As Long, i As Long

2. Vi initialiserer to variabler. Vi initialiserer de variable divisorer med værdi 0. Vi bruger InputBox -funktionen til at få et tal fra brugeren.

delere = 0
nummer = InputBox ("Indtast et nummer")

Efter at brugeren har indtastet et nummer, vil vi kontrollere, om dette tal er et primtal eller ej. Husk, et primtal har præcis to adskilte taldelere: 1 og sig selv.

3. Vi starter en For Next loop.

For i = 1 Til nummer

4. Nu kommer den vigtigste del af programmet. For at beregne antallet af delere af et tal bruger vi Mod -operatøren. Mod -operatøren giver resten af ​​en division. For eksempel 7 mod 2 = 1, fordi 7 divideret med 2 er lig med 3 med en rest på 1. Kun hvis 'tal mod i' = 0, er i en divisor af tal. I dette tilfælde vil vi øge de variable divisorer med 1. Makroen herunder gør tricket.

Hvis nummer Mod i = 0 Så
delere = delere + 1
Afslut Hvis

Excel VBA kontrollerer dette for i = 1, i = 2, i = 3, i = 4 indtil i = tal. Bemærk, at i = 1 og i = tal altid er divisorer af tal. Kun hvis disse tal er de eneste divisorer af tal, er tallet et primtal.

5. Glem ikke at lukke sløjfen.

Næste i

6. Hvis divisorer er lig med 2, viser vi en msgbox, der siger, at det indtastede tal er et primtal. Hvis antallet af delere er højere end 2, viser vi en msgbox, der siger, at det indtastede tal ikke er et primtal.

Hvis delere = 2 Så
MsgBox nummer & "er et primtal"
Andet
MsgBox -nummer & "er ikke et primtal"
Afslut Hvis

7. Test programmet.

Resultat for 104729:

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave