/ / Prime Number Checker v aplikaci Excel VBA

Kontrola prvního čísla v aplikaci Excel VBA

Níže se podíváme na program v Excel VBA že kontroly zda je číslo a prvočíslo nebo ne.

Než začneš: v matematice, prvočíslo je číslo, které má přesně dva odlišné početné děliče: 1 a sám. Nejmenší dvacet pět prvních čísel je: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73 , 79, 83, 89 a 97. Například 8 má 1, 2, 4 a 8 jako dělitelů a je ne primární číslo.

Situace:

Kontrola prvního čísla v aplikaci Excel VBA

1. Nejprve deklarujeme tři proměnné. Jedna celočíselná proměnná, kterou nazýváme dělitelé, jedna dlouhá proměnná nazýváme číslo a jednu dlouhou proměnnou, kterou nazýváme i. Zde používáme dlouhé proměnné, protože dlouhé proměnné mají větší kapacitu než celočíselné proměnné.

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

2. Inicializujeme dvě proměnné. Inicializujeme proměnné s hodnotou 0. Pomocí funkce InputBox získáme číslo od uživatele.

divisors = 0
number = InputBox("Enter a number")

Zadejte číslo

Poté, co uživatel zadal číslo, chceme zkontrolovat, zda je toto číslo primárním číslem nebo ne. Pamatujte si, že prvočíslo má přesně dva odlišné děliče čísel: 1 a samo.

3. Spustíme smyčku For Next.

For i = 1 To number

4. Nyní přichází nejdůležitější část programu. Pro výpočet počtu dělitelů čísla používáme operátor Mod. Operátor Mod dává zbytek dělení. Takže 7 mod 2 by dávalo 1. 7 je děleno 2 (3krát), aby dalo zbytek 1. Pouze pokud je "number mod i" rovno 0, i je dělitel čísel. V tomto případě chceme zvýšit proměnné děliče o 1. Makro dole dělá trik.

If number Mod i = 0 Then
    divisors = divisors + 1
End If

Excel VBA zkontroluje toto pro i = 1, i = 2, i = 3, i= 4 dokud i = číslo. Všimněte si, že i = 1 a i = číslo jsou vždy dělitelé čísla. Pouze pokud jsou tato čísla jedinými rozdělovači čísla, číslo je primárním číslem.

5. Nezapomeňte uzavřít smyčku.

Next i

6. Pokud se dělitelé rovnají 2, zobrazíme msgbox, že zadané číslo je primární číslo. Je-li počet dělitelů vyšší než 2, zobrazíme msgbox, že zadané číslo není primárním číslem.

If divisors = 2 Then
    MsgBox number & " is a prime number"
Else
    MsgBox number & " is not a prime number"
End If

7. Otestujte program.

Výsledek pro 104729:

Výsledek kontroly čísel prvního čísla

Také si přečtěte: