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

Сделать решето от 1 до 100: 1) выписать все натуральные числа от 1 до 100; 2) вычеркнуть 1; 3) подчеркнуть наименьшее из неотмеченных чисел; 4) вычеркнуть все числа, кратные подчеркнутому на предыдушем шаге; 5) если в списке имеются неотмеченные числа, то перейти к шагу 3, в противном случае все подчёркнутые числа - простые. !

👇
Ответ:
nicekuzia01
nicekuzia01
05.09.2021
Var
  i,j,n:integer;
  a:array[1..1000] of boolean;
begin
  Write('Введите верхнюю границу чисел (до 1000): ');
  Read(n);
  for i:=1 to n do a[i]:=True;
  i:=2;
  while sqr(i)<=n do begin
    j:=sqr(i);
    if a[i] then
      while j<=n do begin a[j]:=False; j:=j+i end;
    Inc(i)
  end;
  for i:=1 to n do
    if a[i] then Write(i,' ')
end.

Тестовое решение:
Введите верхнюю границу чисел (до 1000): 100
1 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
4,7(78 оценок)
Открыть все ответы
Ответ:
Dazzel09
Dazzel09
05.09.2021

int RowWithMax(double m[n][n], int j)

{

   double max_el = m[j][j];

   int max_i = j;

   for (int i = j; i < n; i++)

   {

       if (abs(m[i][j]) > abs(max_el))

       {

           max_el = m[i][j];

           max_i = i;

       }

   }

   return max_i;

}

 

void RowChange(double m[n][n], double f[n], int i1, int i2)

{

   for (int j = 0; j < n; j++)

   {

       /*m[i1][j] = m[i1][j] + m[i2][j];

       m[i2][j] = m[i1][j] - m[i2][j];

       m[i1][j] = m[i1][j] - m[i2][j];*/

       swap(m[i1][j], m[i2][j]);

   }

   

   swap(f[i1], f[i2]);

}

 

double StraightRun(double m[n][n], double f[n], int i) //прямой метод

{

   double el;

   double det = 1;

   int reverse = 0;

 

   int max_i = RowWithMax(m, i);

   if (i != max_i)

   {

       RowChange(m, f, i, max_i);

       //reverse++;

       det *= (-1);

   }

   el = m[i][i];

   det *= el;

   f[i] /= el;

   for (int i1 = n - 1; i1 >= i; i1--)

   {

       m[i][i1] /= el;

   }

   for (int i2 = i + 1; i2 < n; i2++)

   {

       el = m[i2][i];

       f[i2] -= f[i] * el;

       for (int j = n - 1; j >= i; j--)

       {

           m[i2][j] -= el * m[i][j];

       }

   }

 

 

   return det/**pow(-1, reverse)*/;

 

}

4,6(67 оценок)
Ответ:
Lizaveta9999
Lizaveta9999
05.09.2021

var  

  arr:array[1..1000] of integer;

  i,N:integer;

  max:integer;

begin

   max:=1;

   

   write('Укажите кол-во эл-ов - ');

   

   read(N);

   

   for i:=1 to N do//Присваивание и вывод массива

   begin

       arr[i]:=1+random(100);

       

       write(arr[i],'  ');

       

       if arr[i]>max then max:=arr[i];

   end;

   

   writeln;

   

   writeln('Максимальный эл-т - ',max);

   

   for i:=1 to N do//Увеличение чет. эл-ов

     begin

     if arr[i] mod 2=0 then arr[i]:=arr[i]+max;

     

     write(arr[i],'  ');

     end;

 

end.

Объяснение:

4,8(92 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ