Bài 2 : Tìm hiểu chương trình nhận biết một số tự nhiên N được nhập vào từ bàn phím có phải là số nguyên tố hay không?. Input: Số tự nhiên N.. Output: Trả lời N là số nguyên tố hoặc N kh
Trang 1Bài 2 : Tìm hiểu chương trình nhận biết một số tự nhiên N được nhập vào từ bàn phím có phải là số nguyên tố hay không?
Câu hỏi 1: Em hãy
tìm dữ liệu vào dữ
liệu ra
Input: Số tự nhiên N
Output: Trả lời N là số nguyên tố hoặc
N không là số nguyên tố
Tiết: 57 Bài thực hành số 6
SỬ DỤNG LỆNH LẶP WHILE DO (tt)
Trang 2Ý tưởng: Kiểm tra lần lượt N
có chia hết cho các số tự
nhiên từ 2 đến N-1 hay
không Nếu N không chia hết
cho số nào trong khoảng từ 2
đến N-1 thì N là số nguyên tố,
ngược lại nếu N chia hết cho
bất kỳ số nào trong khoảng từ
2 đến N-1 thì N không phải là
số nguyên tố
Câu 2: Viết thuật toán cho bài toán trên?
Câu 3: Trong ngôn ngữ lập trình Pascal phép toán chia hết là
phép toán nào?lấy ví dụ?
Trang 3 Thuật toán :
B1: Nhập số tự nhiên N từ bàn phím
B2: Nếu N≤1 thông báo N không phải là số nguyên tố, rồi chuyển đến B4
B3: Nếu N>1;
3.1 i←2;
3.2 trong khi N mod i<>0 còn đúng thì i ←i+1;
3.3.Nếu i = N thì thông báo N là số nguyên tố, rồi chuyển đến
B4.Ngược lại thông báo N không phải là số nguyên tố
B4: Kết thúc thuật toán
Trang 4B4: Kết thúc thuật toán
B1: Nhập số tự nhiên N từ bàn phím
B2: Nếu N≤1 thông báo N không phải là số
nguyên tố, rồi chuyển đến B4
B3: Nếu N>1;
3.1 i←2;
3.2 Trong khi N mod i<>0 còn đúng
thì i ←i+1;
3.3.Nếu i = N thì thông báo N là số
nguyên tố, rồi chuyển đến B4
Ngươc lại thông báo N không phải là số nguyên tố
write('Nhap vao mot so nguyen: '); readln(n);
If n<=1 then
writeln('N khong la so nguyen to')
else
begin
i:=2
while (n mod i<>0) do
i:=i+1;
if i=n then
writeln(n,' la so nguyen to!')
else writeln(n,' khong phai
la so nguyen to!');
end;
readln
End.
Cách phân bố câu lệnh trong thuật toán
Trang 5Câu 4: Đọc và tìm hiểu ý
nghĩa của từng câu lệnh
trong chương trình sau
đây:
Program So_ngto;
Uses Crt;
Var n,i:integer;
Begin
Clrscr;
write('Nhap vao mot so nguyen: ');readln(n);
If n<=1 then writeln('N khong la so nguyen to') else
begin
i:=2;
while (n mod i<>0) do i:=i+1;
if i=n then writeln(n,' la so nguyen to!') else writeln(n,' khong phai la so nguyen to!'); end;
readln
end.
Câu 5: Trong chương trình
bên các em sử dụng bao
nhiêu biến? Các biến dùng
kiểu dữ liệu gì?
Trang 6Ghi nhí!
LÆp
+ LÆp víi sè lÇn lÆp kh«ng biÕt tr íc.
While <điều kiện> do <câu lệnh>
Trang 7Cảm ơn Quý
Thầy Cô
và
các em học sinh
đã
quan tâm theo dõi !