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.

Câu hỏi trong lớp Xem thêm