Viết chương trình nhập vào các số nguyên từ bàn phím (n<10^9) cho đến khi nào gặp số nguyên tố thì kết thúc nhập. Tính tổng các số chẵn và trung bình cộng các số lẻ. --- Yêu cầu: Dùng file và chương trình con
2 câu trả lời
uses crt;
var n,i,t,d:longINT;
tbc:real;
a:array[1..1000000000] of integer;
f,g:text;
function ktnt(x:Longint):boolean;
var j:longint;
kt:boolean;
begin
kt:=true;
for j:=2 to round(sqrt(x)) do if i mod x=0 then
begin
kt:=false;
break;
end;
ktnt:=kt;
end;
procedure docso;
begin
i:=1;
write('Nhap a[',i,']=');readln(a[1]);
if ktnt(a[1])=true then exit;
while ktnt(a[i])<>true do
begin
inc(i);
write('Nhap a[',i,']=');readln(a[i]);
end;
end;
procedure ttvtbc;
begin
n:=i;
t:=0;
for i:=1 to n do if a[i] mod 2 =0 then t:=t+a[i];
tbc:=0;
d:=0;
for i:=1 to n do if a[i] mod 2=1 then
begin
inc(d);
tbc:=tbc+a[i];
end;
tbc:=tbc/d;
end;
procedure xuatfile;
begin
assign(g,'xuat.out');rewrite(g);
writeln(g,'Tong cac so chan: ',t);
writeln(g,'Tbc cac so le: ',tbc);
close(g);
end;
begin
docso;
ttvtbc;
xuatfile;
end.
uses crt;
var n,t:integer;
function ktnt(x:integer):boolean;
var i:integer;
kt:boolean;
begin
kt:=true;
for i:=2 to trunc(sqrt(x)) do
if x mod i=0 then
begin
kt:=false;
break;
end;
if kt=true then ktnt:=true
else ktnt:=false;
begin
clrscr;
t:=0;
repeat
write('Nhap n='); readln(n);
if (n mod 2=0) then t:=t+n;
until ktnt(n)=false;
writeln(t);
readln;
end.