Дана матрица размерностью...

Тема в разделе "Информатика", создана пользователем Miranta, 18 фев 2010.

  1. Miranta

    Miranta New Member

    Дана матрица размерностью N*M. Найти среднееарифметическое простых чисел матрицы.
     
  2. anguss

    anguss New Member

    В турбо паскале, к сожалению, нет динамических массивов, по крайней мере, я в описаниях ничего не нашел, поэтому придется заранее задать N и M.
    Пусть будет N = 10, M = 20. Для чисел меньше миллиона функция Prost работает за вполне приемлемое время.

    PROGRAM SredProst;
    var A: array [1..10, 1..20] of integer;
    var i, k, p: integer, S: real;
    FUNCTION Prost(n: integer): integer
    var i: integer
    BEGIN
    Prost:=1;
    {esli n delitsia na kakoe-to chislo ot 2 do kornya iz n, to n sostavnoe}
    for i:=2 to sqrt(n) do if (n mod i = 0) then Prost:=0;
    END;

    BEGIN
    uses crt; clrscr;
    {Vvodim nachalniy massiv}
    for i:=1 to 10 do
    begin
    for k:=1 to 20 do read (A[i,k]);
    end;
    S:=0; p:=0;
    {Ischem prostye chisla, summiruem ih v S i schitaem kol-vo v p}
    for i:=1 to 10 do
    begin
    for k:=1 to 20 do
    begin
    {Prost - eto funkcia poiska, prostoe chislo ili net}
    if (Prost(A[i,k]) = 1) then
    begin
    S:=S+A[i,k];
    p:=p+1;
    end;
    end;
    end;
    {Srednee - eto summa chisel, delennaya na ih kol-vo}
    S:=S/p;
    writeln ('Srednee vseh prostyh chisel ', S);
    END.
     

Поделиться этой страницей

Наша группа