Prime Number Checker în Excel VBA
Mai jos ne vom uita la un program în Excel VBA acea verificări dacă un număr este a număr prim sau nu.
Inainte sa incepi: în matematică, un număr prime este un număr care are exact două divizoare distincte: 1 și el însuși. Cele mai mici douăzeci și cinci de numere prime sunt: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73 , 79, 83, 89 și 97. De exemplu, 8 are 1, 2, 4 și 8 ca divizori și este nu un număr prime.
Situatie:
1. În primul rând, declarăm trei variabile. O variabilă Integer pe care o numim divizori, o variabilă lungă numim numărul și o variabilă lungă pe care o numim i. Folosim aici variabile lungi deoarece variabilele lungi au o capacitate mai mare decât variabilele întregi.
2. Inițializăm două variabile. Inițializăm divizoarele variabilei cu valoarea 0. Folosim funcția InputBox pentru a obține un număr de la utilizator.
number = InputBox("Enter a number")
După ce utilizatorul a introdus un număr, dorim să verificăm dacă acest număr este un număr prime sau nu. Amintiți-vă că un număr prime are exact doi divizori distincti: 1 și el însuși.
3. Începem o buclă For Next.
4. Acum vine cea mai importantă parte a programului. Pentru a calcula numărul de divizori ai unui număr, folosim operatorul Mod. Operatorul Mod dă restul unei diviziuni. Deci 7 mod 2 ar da 1. 7 este împărțit de 2 (3 ori) pentru a da un rest de 1. Numai dacă "numărul mod i" este egal cu 0, i este un divizor al numărului. În acest caz, vrem să creștem divizorii variabili cu 1. Macroul de mai jos face trucul.
divisors = divisors + 1
End If
Excel VBA verifică acest lucru pentru i = 1, i = 2, i = 3, i= 4 până la i = număr. Rețineți că i = 1 și i = numărul sunt întotdeauna divizori ai numărului. Doar dacă aceste numere sunt singurii divizori ai unui număr, numărul este un număr prime.
5. Nu uitați să închideți bucla.
6. Dacă divizorii sunt egali cu 2, afișăm un msgbox care spune că numărul introdus este un număr prime. Dacă numărul de divizori este mai mare de 2, afișăm un msgbox care spune că numărul introdus nu este un număr prime.
MsgBox number & " is a prime number"
Else
MsgBox number & " is not a prime number"
End If
7. Testați programul.
Rezultatul pentru 104729: