Giúp hàm nhập vào 1 số sẽ hiển thị những số chia hết cho số đó

Liên hệ QC

vankha1986

Thành viên mới
Tham gia
6/10/14
Bài viết
1
Được thích
0
Mình đang có ý định làm 1 phần mềm từ excel trong đó khi nhập vào 1 số tự nhiên thì ở một ô khác sẽ hiển thị các số có thể chia hết cho số đó, ai biết hàm đó chỉ dùm cảm ơn.
VD nhập vô số 16 sẽ hiển thị là 1, 2, 4, 8 (đại khái thế)
 
Câu hỏi của bạn chưa rõ ràng, mình xác định lại 1 chút:

"Cho 1 số nguyên dương, liệt kê các ước số của nó ngoại trừ chính nó"

Đơn giản nhất là viết 1 hàm UDF như sau:

Mã:
Function Uocso(ByVal Vl As Long)
Dim i
For i = 1 To Vl - 1
If Vl Mod i = 0 Then
Uocso = Uocso & IIf(Uocso = "", "", ",") & i
End If
Next
End Function

Ta có ô A1 là 16
Tại B1 nhập =Uocso(A1) ta sẽ được 1,2,4,8
 
Câu hỏi của bạn chưa rõ ràng, mình xác định lại 1 chút:

"Cho 1 số nguyên dương, liệt kê các ước số của nó ngoại trừ chính nó"

Đơn giản nhất là viết 1 hàm UDF như sau:

Mã:
Function Uocso(ByVal Vl As Long)
Dim i
For i = 1 To Vl - 1
If Vl Mod i = 0 Then
Uocso = Uocso & IIf(Uocso = "", "", ",") & i
End If
Next
End Function

Ta có ô A1 là 16
Tại B1 nhập =Uocso(A1) ta sẽ được 1,2,4,8

Bài toán tính ước số là bài toán căn bản của số học. Nó có những đặc diểm sau:

1. Số phải là số nguyên dương, tuy nhiên cái này không cần test. Chỉ cần lồng abs(int(...) là được

2. Nếu a là ước số của b, thì b/a cũng là ước số của b. Cái này rất quan trọng. Nếu làm bài tập mà không áp dụng được tính chất này thì bài giải chỉ chấm 50% điểm.
Do tính chất trên, ta chỉ cho i chạy từ 1 đến căn 2 n.

3. Thực ra, theo toán học, bài toán này có cách để nhớ ước đã tính rồi, vd không chia chẵn cho 2 thì không cần tính chia chẵn cho 4. Và thuật cách chẻ số ra, tính ngược. Nhưng thuật toán này không quan trọng lắm vì nó rất cao cấp. Cỡ giáo viên dạy lập trình chưa chắc đã đạt tới.
 
Web KT

Bài viết mới nhất

Back
Top Bottom