Trình kiểm tra số nguyên tố trong Excel VBA
Dưới đây chúng ta sẽ xem xét một chương trình trong Excel VBA kiểm tra xem một số có phải là số nguyên tố hay không.
Trước khi bạn bắt đầu: trong toán học, một số nguyên tố là một số có đúng hai ước số phân biệt: 1 và chính nó. Hai mươi lăm số nguyên tố nhỏ nhất là: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73 , 79, 83, 89 và 97. Ví dụ, 8 có 1, 2, 4 và 8 là các ước và không phải là số nguyên tố.
Tình huống:
-
Đầu tiên, chúng ta khai báo ba biến. Một biến Số nguyên chúng ta gọi là số chia, một biến Dài chúng ta gọi là số và một biến Dài chúng ta gọi là i. Chúng ta sử dụng biến Long ở đây vì biến Long có dung lượng lớn hơn biến Integer.
Dim divisors As Integer, number As Long, i As Long
-
Chúng tôi khởi tạo hai biến. Chúng tôi khởi tạo các ước số biến có giá trị 0. Chúng tôi sử dụng hàm InputBox để lấy một số từ người dùng.
divisors = 0 number = InputBox("Enter a number")
Sau khi người dùng nhập một số, chúng ta muốn kiểm tra xem số này có phải là số nguyên tố hay không. Hãy nhớ rằng một số nguyên tố có đúng hai ước số phân biệt: 1 và chính nó.
-
Chúng tôi bắt đầu một vòng lặp For Next.
For i = 1 To number
-
Bây giờ đến phần quan trọng nhất của chương trình. Để tính số ước của một số, ta sử dụng toán tử Mod. Toán tử Mod đưa ra phần còn lại của một phép chia. Vì vậy, 7 mod 2 sẽ cho 1. 7 được chia cho 2 (3 lần) để có dư là 1. Chỉ khi “number mod i ‘bằng 0, i là ước của số. Trong trường hợp này, chúng ta muốn tăng biến số chia hết cho 1. Macro bên dưới thực hiện thủ thuật.
If number Mod i = 0 Then divisors = divisors + 1 End If
VBA Excel kiểm tra điều này cho i = 1, i = 2, i = 3, i = 4 cho đến khi i = number.
Lưu ý rằng i = 1 và i = number luôn là ước của số. Chỉ khi những số này là ước duy nhất của số thì số đó là số nguyên tố.
-
Đừng quên đóng vòng lặp.
Next i
-
Nếu các ước số bằng 2, chúng tôi hiển thị một hộp thư thông báo rằng số đã nhập là số nguyên tố. Nếu số ước số lớn hơn 2, chúng tôi hiển thị một hộp thư thông báo rằng số đã nhập không phải là số nguyên tố.
If divisors = 2 Then MsgBox number & " is a prime number" Else MsgBox number & " is not a prime number" End If
-
Chạy thử chương trình.
Kết quả cho 104729: