LH Quảng cáo: lazijsc@gmail.com

Bài tập  /  Bài đang cần trả lời

Viết thuật toán kiểm tra số tự nhiên N có phải là số nguyên tố hay không

Ai làm đc và đúng chấm luôn 10đ
Vẽ thuật toán kiểm tra số tự nhiên N có phải là số nguyên tố hay không?

6 trả lời
Hỏi chi tiết
2.004
1
0
Phonggg
14/10/2020 18:25:29
+5đ tặng

Dựa vào định nghĩa của số nguyên tố chúng ta sẽ có cách giải như sau:

  • Bước 1: Nhập vào n
  • Bước 2: Kiểm tra nếu n < 2 thì kết luận n không phải là số nguyên tố
  • Bước 3: Lặp từ 2 tới (n-1), nếu trong khoảng này tồn tại số mà n chia hết thì kết luận n không phải là số nguyên tố, ngược lại n là số nguyên tố.

Lưu ý: Vẫn còn rất nhiều cách khác nhưng chung quy lại vẫn phải bám vào định nghĩa số nguyên tố là gì. Ví dụ trong vòng lặp điểm dừng sẽ là (n/2) thay vì (n-1) vì theo lý thuyết thì một số không bao giờ chia hết cho số lớn hơn một nửa của nó. Ví dụ số 9 thì số một nửa của nó là số (9 : 2 = 4), như vậy ta chỉ cần kiểm tra các số từ 2,3,4 mà thôi, còn các số 5,6,7,8 chắc chẵn 9 sẽ không chia hết.

Mở khóa để xem toàn bộ nội dung trả lời

(?)
Bạn đã đạt đến giới hạn của mình. Bằng cách Đăng ký tài khoản, bạn có thể xem toàn bộ nội dung trả lời
Cải thiện điểm số của bạn bằng cách đăng ký tài khoản Lazi.
Xem toàn bộ các câu trả lời, chat trực tiếp 1:1 với đội ngũ Gia sư Lazi bằng cách Đăng nhập tài khoản ngay bây giờ
Tôi đã có tài khoản? Đăng nhập
0
0
Vua Hai Tac
14/10/2020 18:26:12
+4đ tặng

Bạn có thể củng cố kiến thức C++ từ khóa LẬP TRÌNH C++ CƠ BẢN.

Hoặc tìm hiểu thêm các bài tập khác trong khóa Bài toán kinh điển trong lập trình

Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của bạn để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”.

0
0
Mai Thy
14/10/2020 18:27:03
+3đ tặng
function ktnt(x:int64):boolean;
var i:int64;
begin
     if x<2 then exit(false);
     if (x=2)or(x=3) then exit(true);
     if (x mod 2=0)or(x mod 3=0) then exit(false);
     i:=5;
     while i<=trunc(sqrt(x)) do
     begin
        if  (x mod i=0)or(x mod (i+2)=0) then exit(false);
        inc(i,6);
     end;
     exit(true);
end;
0
0
Mai Thy
14/10/2020 18:28:12
+2đ tặng
Cách trên là các tối ưu nhất 
Hoặc bạn có thể dùng các đếm ước
Cho 1 biến i chạy đến phần nguyên cbh của x
1
0
1
0

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng học sinh cả nước và AI, sôi động, tích cực, trải nghiệm
Trắc nghiệm Tin học Lớp 10 mới nhất

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường

Học ngoại ngữ với Flashcard

×
Trợ lý ảo Trợ lý ảo
×
Gia sư Lazi Gia sư