- Gửi thanh1234:
Thực ra đây là một bài toán khá cơ bản. Việc cần làm bây giờ là cải tiến nó. Sao cho tối ưu nhất. Ngộ xin đưa một ví dụ:
Giờ ta cải tiến cách làm để tìm số nguyên tố. Chuẩn bị sẵn một mảng để lưu, giả sử mảng P. Gán luôn vị trí P[1]=2. Sau đó, dò như vầy:
Code:
i:=1;
t:=2;
repeat
i:=i+2;
if ngto(i)=true then
begin
P[t]:=i;
t:=t+1;
end;
until i>trunc(sqrt(n))
function ngto thì viết như vầy:
- Việc thử 1 số là số nguyên tố không nhất thiết là phải ko chia hết cho 1(hay nhiều) trong các số từ 2 đến sqrt.
- Thay vì thử quá nhiều như vầy, chi bằng ta thử số đó có chia hết cho các số nguyên tố đứng trước nó ko? Để nhanh hơn, ta có thể giới hạn các số nguyên tố để thử chia hết trong khoảng 2 đến sqrt.
(có gì sai sót xin chỉ giáo, cám ơn trước!)
- Master_Baby
Bookmarks