PDA

View Full Version : Tính tổng và đếm các số nguyên tố trong mảng???



light241089
04-01-2010, 01:43
Xem hộ mình đúng chưa nhé! ^-^
Mới học pascal dc 2 tuần mò mãi mới viết được có thế này.
-----------------
program baitap;
uses wincrt;
var
a: array[1..100] of integer;
i,j,n,s,d,k:integer;
begin
write('nhap so cac so nguyen trong day n=');readln(n);
for i:=1 to n do
begin
write('a[',i,']=');readln(a[i]);
end;
d:=0;s:=0;k:=0;
for i:=1 to n do
begin
for j:=2 to round(sqrt(a[i])) do
begin
d:=0;
if a[i] mod j = 0 then d:=d+1;
end;
begin
if d=0 then
begin
k:=k+1;
s:=s+a[i];
end;
end;
end;
writeln('tong cac so nguyen to trong day la ',s);
writeln('so cac so nguyen to trong day la ',k);
readln;
end.

nhokdragon94
04-01-2010, 16:28
Đoạn nhập mảng thì đúng rồi. Nhưng cái chỗ số ng tố thì sai:
Sửa lại:
for i:=1 to n do
begin
d:=0;
for j:=2 to round(sqrt(a[i])) do
if a[i] mod j = 0 then d:=d+1;
if d=0 then
begin
k:=k+1;
s:=s+a[i];
end;end;
writeln('tong cac so nguyen to trong day la ',s);
writeln('so cac so nguyen to trong day la ',k);
readln;
end.

Project_T
04-01-2010, 16:41
có ai chỉ em BT pascal nay ko :
cho N so bat ki; {n la so duoc nhap tu ban phim}
dem cac so lon hon 10 va nho hon 20 sau do tinh tong cua chung;
sau do dua ra man hinh :
cac so >10 va <20 la: {gia tri} {liet ke}
tong cua chung la: {gia tri}
lam on ghi loi giai con khong viet cach giai gium em; {X.X}

nhokdragon94
04-01-2010, 18:27
Hình như bài này có post ở đâu đó rùi. Bạn học mảng chưa zậy

light241089
04-01-2010, 21:51
Uhm,đúng rùi!Thanks nhokdragon nha!Mình tự học trong sách thôi,chứ ở trường thì chưa được học pascal.

Project_T
05-01-2010, 17:25
minh hoc trong cai phan pascal study, mang thi theo chuong trinh lop 8 thi chua hoc toi nhung minh cung da biet roi.

lehang_gb1
07-01-2010, 20:58
có ai chỉ em BT pascal nay ko :
cho N so bat ki; {n la so duoc nhap tu ban phim}
dem cac so lon hon 10 va nho hon 20 sau do tinh tong cua chung;
sau do dua ra man hinh :
cac so >10 va <20 la: {gia tri} {liet ke}
tong cua chung la: {gia tri}
lam on ghi loi giai con khong viet cach giai gium em; {X.X}

Bài này đơn giản chỉ dùng vòng For - do, câu lệnh If- then, lệnh đưa dữ liệu ra màn hình. Thế thôi, bạn tự viết đi!

nhokdragon94
07-01-2010, 21:53
Nhập mảng, xuất mảng;
for i:=1 to n do
If (A[i]>10) and (A[i]<20) then
begin
S:=S+A[i];
write(A[i]:6);
end;
writeln;
writeln('tong: ',S);
readln;
end.
(Chưa test)

nirvanat
13-01-2010, 21:16
Hình như hai bạn trên kia làm sai rồi. Tính tổng mà chả thấy câu lệnh For đâu cả. Bài mình giải thế nay không biết đã đúng chưa:
uses crt;
var
begin
write('nhap so luong phan tu');readln(n);
For i:=1 to n do
begin
write('nhap A[',i,']=');readln(a[i]);
end;s:=0;dem:=0;
For i:=1 to n do
begin
kt:=true;
For j:=1 to round(sqrt(a[i]) do
if a[i] mod j=0 then
begin kt:=false;break;
end;
If kt then
begin s:=s+a[i]; dem:=dem+1; end;
end;
writeln('Co tat ca ',dem,' so nguyen to trong mang');
writeln('Tong cac so nguyen to la ',s:8);
readln;
end.

tranon710
07-04-2010, 11:07
xin chao cac ban minh moi dang ki lam thanh vien song minh co mot so van de can hoi moi nguoi ? ai co cac dang thuat toan hay thi sen cho minh nhe!

beoheo
22-04-2010, 20:04
Mình cũng có một bài tính tổng số nguyên tố. Không có đếm!

program Beo;
uses crt;
var K, B,n,i:integer;
a:array[1..100] of integer;
Begin
clrscr;
write('Nhap so cac so nguyen trong mang: '); readln(n);
writeln('nhap cac so nguyen to vao mang:' );
for i:=1 to n do Begin
write('so thu ',i,' la: '); readln(a[i]);
end;
B:=0;
for i:=1 to n do
begin
K:=2;
while (a[i] mod K<>0) do K:=K+1;
if K = a[i] then B:=B+a[i];
end;
writeln('Tong cac so nguyen to trong mang la: ',B);
readln
end.

lehang_gb1
23-04-2010, 10:40
code chuẩn đây


program nguyento;
Type mang=array[1..100] of integer;
Var i,N:integer;A:mang;
procedure Nhap(Var A:mang;n:integer);
Var i:integer;
Begin
For i:=1 to N do
Begin
write('A[',i,']=');
Readln(A[i]);
End;
End;
function sont(x:integer):Boolean;
Var i:integer;
Begin
sont:=(x>1);
For i:=2 to trunc(sqrt(x)) do
if x mod i =0 then
Begin
sont:=false;
break;
End;
End;
BEGIN
write('n='); Readln(n);
Nhap(A,n);
For i:=1 to n do if sont(A[i]) then write(A[i]:3);
Readln;
END.