• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Thuật toán Liệt kê các số nguyên tố từ 1 đến n

Góc trao đổi, hỏi đáp của ngôn ngữ Visual Basic 6 và Visual Basic Script

Điều hành viên: tungblt

thinhle90
Thành viên chính thức
Thành viên chính thức
Bài viết: 17
Ngày tham gia: T.Ba 14/09/2010 5:35 pm

Thuật toán Liệt kê các số nguyên tố từ 1 đến n

Gửi bàigửi bởi thinhle90 » T.Ba 14/09/2010 5:44 pm

Mấy anh chị chỉ giúp em bài toán nhập vào số liệt kê các số nguyên tố đến n và lưu vào trong list.
Thank !

Hình đại diện của người dùng
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Bài viết: 1255
Ngày tham gia: T.Năm 03/06/2010 9:23 pm
Đến từ: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 time
Been thanked: 136 time
Liên hệ:

Re: Thuật toán Liệt kê các số nguyên tố từ 1 đến n

Gửi bàigửi bởi VuVanHoanh » T.Ba 14/09/2010 7:39 pm

ListBox1, Command1

  1. Private Sub Command1_Click()
  2. Dim i As Integer
  3. For i = 1 to n
  4. ListBox1.AddItem i
  5. Next
  6. End Sub
  7.  
Dead.

htpc

Re: Thuật toán Liệt kê các số nguyên tố từ 1 đến n

Gửi bàigửi bởi htpc » T.Ba 14/09/2010 7:58 pm

VuVanHoanh đã viết:ListBox1, Command1

  1. Private Sub Command1_Click()
  2. Dim i As Integer
  3. For i = 1 to n
  4. ListBox1.AddItem i
  5. Next
  6. End Sub
  7.  

Người ta hỏi số nguyên tố cậu Hoanh ạ.
Cho i as integer chạy từ 2 -> n. Check i là số nguyên tố thì thêm vào list.
Giải thuật tìm số nguyên tố học từ cấp 2 :)

Hình đại diện của người dùng
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Bài viết: 1255
Ngày tham gia: T.Năm 03/06/2010 9:23 pm
Đến từ: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 time
Been thanked: 136 time
Liên hệ:

Re: Thuật toán Liệt kê các số nguyên tố từ 1 đến n

Gửi bàigửi bởi VuVanHoanh » T.Ba 14/09/2010 8:37 pm

Nguyên tố thì,... :-? khá lâu đấy
ListBox1, Command1

  1. Private Sub Command1_Click()
  2. Dim n As Integer
  3. Dim m As Integer
  4. Dim i As Integer
  5. Dim s As Integer
  6.  
  7. n = 'n bằng bao nhiêu thì bạn ghi ra
  8.  
  9. For i = 1 to n 'Số bạn cần đếm tới
  10. If n = 1 Or n = 2 Then
  11.      ListBox1.AddItem n
  12.      Exit Sub
  13. Else
  14. For m = 1 to i
  15.      If i mod m = 0 Then
  16.           s = s + 1
  17.      End if
  18.      If s = 2 Then
  19.           ListBox1.AddItem i
  20.           s = 0
  21.      End if
  22. End if
  23. Next
  24. s = 0
  25. Next
  26. End Sub
  27.  
Dead.

htpc

Re: Thuật toán Liệt kê các số nguyên tố từ 1 đến n

Gửi bàigửi bởi htpc » T.Ba 14/09/2010 8:48 pm

Số 1 không phải là số nguyên tố, nên chỉ chạy từ 2->n :)

Hình đại diện của người dùng
PhapSuXeko
Mạnh Thường Quân
Mạnh Thường Quân
Bài viết: 294
Ngày tham gia: CN 03/05/2009 7:44 pm
Đến từ: Tây Ninh
Has thanked: 1 time
Been thanked: 9 time
Liên hệ:

Re: Thuật toán Liệt kê các số nguyên tố từ 1 đến n

Gửi bàigửi bởi PhapSuXeko » T.Ba 14/09/2010 10:31 pm

  1. '//
  2. '// Hàm kiểm tra số Nguyên Tố
  3. '//
  4.    Function LaSNT(ByVal n As Integer) As Boolean
  5.         Dim i% = Sqrt(n)
  6.         While (i > 1)
  7.             If n Mod i = 0 Then LaSNT = False : Exit Function
  8.             i = i - 1
  9.         Wend
  10.         LaSNT = True
  11.     End Function
  12. '//
  13. '// Sử dụng, bỏ code vô Button
  14. '//
  15.    Dim n% = Inputbox ("Nhập n")
  16.     For i% = 2 To n
  17.         If LaSNT (i) = True Then Listbox1.AddItem(i)
  18.     Next
  19.  

Đã sửa lại code VB6 như bác Trương Phú
Sửa lần cuối bởi PhapSuXeko vào ngày T.Tư 15/09/2010 1:36 pm với 2 lần sửa.
Trang chủ phần mềm xem ảnh ImageGlass: http://www.imageglass.org

thinhle90
Thành viên chính thức
Thành viên chính thức
Bài viết: 17
Ngày tham gia: T.Ba 14/09/2010 5:35 pm

Re: Thuật toán Liệt kê các số nguyên tố từ 1 đến n

Gửi bàigửi bởi thinhle90 » T.Tư 15/09/2010 12:06 am

Thank! tất cả mọi người nha !

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4726
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 13 time
Been thanked: 475 time

Re: Thuật toán Liệt kê các số nguyên tố từ 1 đến n

Gửi bàigửi bởi truongphu » T.Tư 15/09/2010 7:52 am

1- Tiêu đề có nêu "thuật toán", đúng ra bài nầy ở Box Thuật toán. Thôi thì ở đây cũng được. Đây là đề mục rất quen thuộc; các bạn có thể search với từ "nguyên tố" sẽ thấy rất nhiều bài viết cả trong Box Thuật toán, Box Thắc mắc...

2- Bài viết của bạn PhapSuXeko ngay trước khi chủ đề tài cảm ơn, chúng ta xem như đại diện các thảo luận ở trên:

a- Bạn PhapSuXeko đã dùng code VB.Net, như vậy trả lời trong Box VB6 sẽ gây thắc mắc cho các bạn không quen. Mong các bạn khác lưu ý điểm nầy; code trên chạy trong môi trường VB6 sẽ báo lỗi.
* Với VB6, ta viết While... Wend

b- Nếu là Hàm kiểm tra số Nguyên Tố, ta chỉ cần kiểm tra căn bậc 2 số đó có phần thập phân hay không.

c- Kỹ thuật Code:
Dim i%
i = n / 2

rõ ràng không hay và làm chậm tính toán. ta viết lại:

Mã: Chọn hết

Dim i%
i = n \ 2


d- phân tích code:
dùng n\2 là hay hơn n. Tuy nhiên tối ưu là dùng phần nguyên của căn n = CInt(Sqr(n)); hoặc "ép" căn n thành Integer, ví dụ như:

Mã: Chọn hết

Dim i%
i = Sqr(n)
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
PhapSuXeko
Mạnh Thường Quân
Mạnh Thường Quân
Bài viết: 294
Ngày tham gia: CN 03/05/2009 7:44 pm
Đến từ: Tây Ninh
Has thanked: 1 time
Been thanked: 9 time
Liên hệ:

Re: Thuật toán Liệt kê các số nguyên tố từ 1 đến n

Gửi bàigửi bởi PhapSuXeko » T.Tư 15/09/2010 8:34 am

Híc, post xong mới biết là vb6, có sửa lại nhưng quên cái vụ while wend
Trang chủ phần mềm xem ảnh ImageGlass: http://www.imageglass.org

b0yhu3cut3
Bài viết: 1
Ngày tham gia: T.Hai 31/10/2011 1:32 pm

Re: Thuật toán Liệt kê các số nguyên tố từ 1 đến n

Gửi bàigửi bởi b0yhu3cut3 » T.Hai 31/10/2011 1:34 pm

Em là thành viên mới, em muốn làm bài này chạy ở Pascal thì như thế nào


Quay về “Visual Basic 6 và Visual Basic Script (VB & VBS)”

Đang trực tuyến

Đang xem chuyên mục này: Bing [Bot]1 khách