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

DnoKaKtys DnoKaKtys    3   02.09.2019 21:00    1

Ответы
ataev0512 ataev0512  03.08.2020 14:51
// PascalABC.NET 3.2, сборка 1467 от 02.06.2017
// Внимание! Если программа не работает, обновите версию!

function IsPrime(n:integer):boolean;
begin
  if n<4 then Result:=True
  else begin
    var found:=(n mod 2=0);
    var p:=3;
    while (not found) and (sqr(p)<=n) do
      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
ПОКАЗАТЬ ОТВЕТЫ
fil2143878 fil2143878  03.08.2020 14:51
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
            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.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика