Tính tổng số nguyên tố trong mảng

14

Một bạn có hỏi cách giải bài lập trình pascal như nhau :

1. Nhập vào mảng n phần tử xuất ra tổng của các số nguyên tố trong mảng đó.

Đây là một đề tương đối dễ, do đó chúng tôi sẽ trình bày bài ở dạng sử dụng hàm để các bạn tiếp nhận thêm kiến thức.
Hàm ở đây tên là NT với tham trị đưa vào là một con số và hàm này sẽ kiểm tra xem số đó có phải là số nguyên tố hay không, việc kiểm tra được thực hiện qua vòng lặp tối ưu While (n mod i <> 0)and(i<Sqrt(n)), các bạn có thể xem lại bài in ra các số nguyên tố ở đây.

Các bạn có thể thấy khi nhập số phần tử của mảng chúng tôi để nó trong vòng lặp, điều này đảm bảo rằng người nhập không thể nhập số âm hay lớn hơn max. Nếu cố tình nhập vòng lặp không thỏa điều kiện và người dùng sẽ phải nhập lại tuy nhiêu nếu họ cố ý nhập vào chuỗi hay số thực thì đành chịu.

2. Dùng chương trình con.

Program tong_cac_so_ng_to_trong_mang;
Uses crt ;
Const Max = 500;
Type mang = Array[1..max] of integer;
Var S,n,i:integer;
    A:mang;
Function NT(n:integer):boolean;
Var i:integer;
Begin
  If (n=0)Or(n=1) then NT:=False
  Else
Begin
  i:=2;
  While (n mod i <> 0)and(i<Sqrt(n)) do i:=i+1; 
  If i>Sqrt(n) then NT:=True Else Nt:=False;
End;
End;
{Function NT}
Begin {Chuong trinh chinh}
 Repeat
   Clrscr;
    Write('Ban nhap mang co bao nhieu phan tu : '); Readln(n);
 Until (n<=max)And(n>0); 
For i:=1 to n do 
Begin Write('A[',i,']='); Readln(A[i]); End; 
S:=0; 
For i:=1 to n do If NT(A[i]) then S:=S+A[i]; 
Write('Tong cac so nguyen to trong mang = ',S); 
Readln; 
End.

3. Không dùng chương trình con.

Program tong_cac_so_ng_to_trong_mang;
Uses crt ;
Const Max = 500;
Type mang = Array[1..max] of integer;
Var S,n,i,j:integer;
    A:mang;
    NT:boolean;
Begin {Chuong trinh chinh}
 Repeat
   Clrscr;
   Write('Ban nhap mang co bao nhieu phan tu : '); Readln(n);
 Until (n<=max)And(n>0);
 For i:=1 to n do
  Begin
     Write('A[',i,']=');
     Readln(A[i]);
  End;
 S:=0;
 For i:=1 to n do
  Begin
       j:=2;
       While (A[i]mod j <> 0)and(j<Sqrt(A[i])) do j:=j+1; If j>Sqrt(A[i]) then NT:=True Else Nt:=False;
       If NT then S:=S+A[i];
  End;
 Write('Tong cac so nguyen to trong mang = ',S);
 Readln;
End.
5 2 votes
Article Rating
Share.

About Author

٩(●̮̮̃•̃)۶ Không có lẽ yêu trên đời quá khó ٩(͡๏̯͡๏)۶ Mà thôi yêu cũng chẳng dễ chút nào! ٩(×̯×)۶

Subscribe
Thông báo
guest
14 Comments
oldest
newest most voted
Inline Feedbacks
View all comments
Nam
Nam
2 years ago

Function là gì ạ

Tấn Dũng
Tấn Dũng
2 years ago

Hay a

Duy
Duy
2 years ago

chương tình này có trong kiến thức 11 ko ???

húc
1 year ago

Làm cách nào để xuất các số nguyên tố liên tiếp dài nhất?

liên
liên
1 year ago

muốn viết riêng trong mảng thôi, ko muôn dùng chương trình con, mong được giúp ạ

Lig
Lig
1 year ago

Giúp em viết chuiwng trình tính tổng các số âm trong mảng số nguyên gồm N phần tử vs ạ

T.s
T.s
1 year ago

Viết chương trình tính trung bình cộng các số trong mảng số nguyên gồm N phần tử

Chi
Chi
11 months ago

Viết chương trình đếm số nguyên tố trong khoảng p-q thì nn ạ

14
0
Would love your thoughts, please comment.x
()
x