М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
chiglakova83
chiglakova83
02.04.2021 13:34 •  Информатика

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

👇
Ответ:
Мартинюк1
Мартинюк1
02.04.2021
// 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
4,5(94 оценок)
Ответ:
alya5511Аля
alya5511Аля
02.04.2021
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.
4,4(89 оценок)
Открыть все ответы
Ответ:
bilinia16
bilinia16
02.04.2021
Const
  n = 6;

var
  b: array[1..n, 1..n] of integer;
  a: array[1..n] of integer;
  i, j, s1, s2, max: integer;

begin
  Randomize;
  Writeln('Исходный массив');
  //max := -777; {заведомо меньше меньшего}
  for i := 1 to n do
  begin
    for j := 1 to n do
    begin
      b[i, j] := Random(101) - 50;
      Write(b[i, j]:4)
    end;
    Writeln
  end;
 
  s1 := 0; s2 := 0;
  for i := 1 to n do begin s1 := s1 + b[1, j]; s2 := s2 + b[j, j] end;
  if s1 > s2 then begin
    Writeln('Сформированный массив');
    for i := 1 to n do
    begin
      max := b[i, 1];
      for j := 2 to n do if max < b[i, j] then max := b[i, j];
      a[i] := max;
      Write(max:4)
    end
  end
  else begin
    s1 := 0; s2 := 0;
    for i := 1 to n do
      for j := 1 to n do
        if b[i, j] > 0 then s1 := s1 + b[i, j]
        else s2 := s2 + b[i, j];
    Writeln('Среднее арифметическое положительных элементов= ', s1/n);
    Writeln('Среднее арифметическое отрицательных элементов= ', s2/n);
  end
end.

Тестовые решения:
Исходный массив
 -32  38 -10  42 -30 -35
 -13 -22  14  -2 -42   0
 -38  18  29  39 -26  19
  15  23  -4 -31  21   8
 -36  13 -26  -6 -13 -10
 -11  38  40  11 -10 -22
Среднее арифметическое положительных элементов= 61.3333333333333
Среднее арифметическое отрицательных элементов= -69.8333333333333

Исходный массив
 -37 -22  38  25 -23  21
 -33 -50  32  42  -1   7
   9  29  -9  21  29  -4
  50  13 -33 -13 -47  10
  25  46  18  47  15  48
 -48  12 -39  -8  34  14
Сформированный массив
  38  42  29  50  48  34
4,6(13 оценок)
Ответ:
vikavp2
vikavp2
02.04.2021
Const
  n = 40;

var
  x: array[1..n] of integer;

procedure InitMas(p: integer);
var
  i: integer;
begin
  Writeln('Элементы массива');
  for i := 1 to p do
  begin
    x[i] := Random(101) - 50;
    Write(x[i]:4);
  end;
  Writeln
end;

function avg(m: integer): real;
var
  i, s: integer;
begin
  s := 0;
  for i := 1 to m do s := s + x[i];
  avg := s / m
end;

begin
  Randomize;
  InitMas(10);
  Writeln('Среднее арифметическое равно ', avg(10))
end.

Тестовое решение:
Элементы массива
  44 -40  -1   9  48 -12  48 -39 -13  32
Среднее арифметическое равно 7.6
4,7(82 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ