- Ý tưởng thuật toán.
+ Gán một biến dem=0
+ Nhập số lượng phần tử của mảng
+ Cho một biến chạy từ đầu mảng đến cuối mảng. Khi chạy đến đâu thì nhập giá trị đến đó, kiểm tra giá trị vừa nhập vào có phải là số nguyên tố hay không. Nếu giá trị vừa nhập là số nguyên tố thì tăng biến “dem” lên một đơn vị.
+ In mảng vừa nhập ra màn hình
+ In biến “dem” ra màn hình
- Thuật toán.
+ Bước 1: Nhập số lượng phần tử n
+ Bước 2: dem ←0;
+ Bước 3:
- Bước 3.1: i←1
- Bước 3.2: Kiểm tra i với n. Nếu i<= n thì
+ Nhập giá trị cho phẩn tử a[i]
+ Kiểm tra a[i]:
Bước 3.2.1: bl←True
Bước 3.2.2:
- Buớc 3.2.2.1: Nếu a[i]<=1 thì bl=false
- Bước 3.2.2.2: Ngược lại nếu a[i]<4 thì bl=true
- Bước 3.2.2.3: Ngược lại j ←2
- Bước 3.2.2.4: Nếu a[i] chia j mà dư =0 thì bl←False
- Bước 3.2.2.5: j←j+1
- Bước 3.2.2.6: Nếu j > Trunc(sqrt(a[i])) thì tới bước 4, ngược lại thì quay lại bước 3.2.2.4 Kiểm tra bl
- Nếu bl=true thì dem← dem+1
+ Bước 4: In ra mảng vừa nhập, in đếm và kết thúc
- Chương trình nguồn.
Program NguyenTo;
Uses
Crt;
var a:array [1..1000] of integer;
i,j,n,dem:integer;
bl:boolean;
begin
dem:=0;
write('nhap n'); readln(n);
for i:=1 to n do
begin
write('a[',i,']='); readln(a[i]);
end;
for i:=1 to n do
begin
if a[i]<=1 then bl:=false
else if a[i]<4 then bl:=true
else for j:=2 to trunc(sqrt(a[i])) do
if a[i] mod j = 0 then bl:=false;
if bl=true then dem:=dem+1;
end;
for i:=1 to n do write(a[i]);
writeln;
write('mang da cho co so phan tu nguyen to la',dem);
readln
end.