Ввести n чисел и найти сумму простых чисел в паскале

0 голосов
77 просмотров

Ввести n чисел и найти сумму простых чисел в паскале


Информатика (17 баллов) | 77 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

// PascalABC.NET 3.2, сборка 1467 от 02.06.2017
// Внимание! Если программа не работает, обновите версию!

function IsPrime(n:integer):boolean;
begin
  if n<4 then Result:=True<br>  else begin
    var found:=(n mod 2=0);
    var p:=3;
    while (not found) and (sqr(p)<=n) do<br>      begin found:=(n mod p=0); p+=2 end;
    Result:=not found
    end
end;

begin
  Writeln('S=',ReadSeqInteger('Вводите:',ReadInteger('n='))
      .Where(m->IsPrime(m) and (m>0)).Sum)
end.

Пример
n= 6
Вводите: 20 17 31 15 19 7 9
S=74

(150k баллов)
0 голосов

Function P(A:integer):boolean;
Var d,K:integer;
Begin
P:=true;
if A < 2 then P:=false
else
   if A > 3 then
      if A mod 2 = 0 then P:=false
      else
         Begin
         K:=Trunc(Sqrt(A));
         d:=3;
         While d <= K do<br>            Begin
            if A mod d = 0 then P:=false;
            d:=d+2
            End;
         End;
End;
Var
   A,n:integer;
   S:real;
Begin
S:=0;
Write('n = ');ReadLn(n);
Write('Введите n чисел: ');
For n:= 1 to n do
    Begin
    Read(A);
    if P(A) then S:=S+A;
    End;
Write('S = ',S)
End.

(6.6k баллов)