Найти сумму и количество элементов в каждом столбце матрицы, являющихся простыми числами....

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

Найти сумму и количество элементов в каждом столбце матрицы, являющихся простыми числами.
Если можно, то с объяснениями, пожалуйста. Заранее благодарна!


Информатика (83 баллов) | 97 просмотров
0

На каком языке писать?

0

Паскаль

0

Данные(размер матрицы и значения элементов)задаются с клавитуры/из файла читаются?

0

без разницы

Дано ответов: 2
0 голосов
Правильный ответ

Const
  m=5; //число строк
  n=10; //число столбцов
var
  i,j:integer;
   s,k:array[1..n]of integer; //s для суммы, k для количества простых чисел
  a:array[1..m,1..n]of integer;

function prost(x:integer):boolean; //функция определения простого числа
var i:integer;
begin
result:=true;
for i:=2 to (x div 2) do
  if (x mod i=0) and (i<>x) then result:=false;
end;  

begin
//заполнение случайными числами и вывод массива
for i:=1 to m do
  begin
  for j:=1 to n do
    begin
    a[i,j]:=random(20)+1;
    write(a[i,j]:5);
    end;
  writeln;
  end;
//Просмотр по столбцам и подсчет s и k
for j:=1 to n do
  begin
  for i:=1 to m do
    if prost(a[i,j]) then
       begin
      s[j]:=s[j]+a[i,j];
      k[j]:=k[j]+1;
      end;
  end;
writeln('Количество простых чисел по столбцам:' );   
for i:=1 to n do write(k[i]:5);
writeln;
writeln('Сумма простых чисел по столбцам:' ); 
for i:=1 to n do write(s[i]:5);
end.  


image
0

Спасибооооо Вам большое :-)

0

вопрос: почему при выводе количества и суммы там везде нолики? но результат есть

0

Нолики? У меня их нет. Может, текст программы не так набила? Лучше скопируй текст и вставь. Написано и проверено на ПаскальАВС.НЕТ, а у тебя какой паскаль?

0

тот же

0

Я сейчас скан работы приложу в ответ

0

Я проверила программу, исправила свои ошибки и всё получилось. Огромное Вам спасибо!!!

0

Ну и замечательно! Пожалуйста

0

А как сделать без функции boolean?

0

Вообще без функции или просто булевский тип в ней не использовать?

0

Вообще без функций

0 голосов

var
a: array [1..250, 1..250] of integer; // матрица с числами.n, m, i, j: integer;
function prime(a: integer):boolean; //Проверка на простоту.vari: integer;f: boolean;begin  for i := 2 to trunc(sqrt(a)) do    if (a mod i = 0) then     begin         f := true;          break;      end;prime := f;end;beginreadln(n, m); // Ввод размера матрицы.for i := 1 to n dobeginfor j := 1 to m doread(a[i][j]);readln;end;for i := 1 to m do  for j := 1 to n do   if (not prime(a[j][i]))   then     begin      inc(a[n + 1][i]);      inc(a[n + 2][i], a[j][i]);      end;for i := 1 to m do  writeln(a[n + 1][i],' ',a[n + 2][i]); // Вывод суммы и кол - ваreadln;end.
(1.0k баллов)
0

Спасибооооо :-)

0

Не за что =)