IndexIndex  ­CalendarCalendar  ­Trợ giúpTrợ giúp  ­Tìm kiếmTìm kiếm  ­Đăng kýĐăng ký  ­Đăng NhậpĐăng Nhập  ­Đăng ký IpaLĐăng ký IpaL  
Welcome to THQLK33.com!
Gửi bài mới   Trả lời chủ đề nàyShare | 
 

 Nhập một số, tìm xem số đó có bao nhiêu ước số nguyên tố.

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
tdat00
Mod
Mod


Nam Tổng số bài gửi: 476
Age: 21
Location: %systemroot%
Điểm bài viết: 33
Registration date: 12/03/2009

Bài gửiTiêu đề: Nhập một số, tìm xem số đó có bao nhiêu ước số nguyên tố.   Wed May 12, 2010 3:34 pm

Hôm trước có bác nào đó bên ĐH GTVT HN gửi mail nhờ em viết giúp chương trình nhập vào một số N, và xuất ra các ước số nguyên tố của nó, giờ mới nhớ lại.

Bài này cơ bản không khó nhưng em vẫn chưa tìm được thuật toán tối ưu. Để em trình bày với các bác thuật toán tốt nhất em đã tìm được nhé:

Trích dẫn:
Bước 1: cho i chạy từ 2 ---> sqrt(N) và kiểm tra N có chia hết cho i. Nếu chia hết, lưu i vào một mảng A và chia N cho i. Sau đó lặp lại bước 2 này.

Bước 2: đến lúc này thì số N còn lại chắc chắn là số nguyên tố --> lưu N vào mảng A

// mục đích 2 bước này là tìm tất cả ước số của N

Bước 3: kiểm tra toàn bộ mảng A, nếu có phần tử nào là số nguyên tố thì xuất kết quả ra màn hình.


Lúc đầu, em làm theo kiểu cho i chạy từ 1 --> sqrt(N), sau đó kiểm tra i có phải là số NT, nếu i là số NT thì mới kiểm tra N có chia hết cho i không ---> công nhận cách này ngu thật!

Tuy nhiên thuật toán trên em vẫn thấy chưa ổn. Vì nếu nhập vào một số lớn (bằng tích của nhiều số NT lớn) ví dụ như số 16448819582037859 (là tích 2 số NT là 379721, 43318171979) sẽ chạy rất lâu Sad

Ai có cách nào không?


---------------------

Àh, dĩ nhiên phải có thêm 1 bước là kiểm tra i đã có trong mảng A chưa, nếu chưa mới thêm i vào A nhé. Tuy nhiên việc này không giải quyết được nhiều lắm.
Về Đầu Trang Go down
http://www.vnxsoft.com
 

Nhập một số, tìm xem số đó có bao nhiêu ước số nguyên tố.

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions of this forum:Bạn không có quyền trả lời bài viết
Diễn Đàn Tin Học :: Góc Học Tập :: WIN - Form-
Gửi bài mới   Trả lời chủ đề này