Задать вопрос
12 января, 01:09

в двумерном массиве N*N найти простые числа, и если в строках находятся более двух простых чисел то обнулить эти строки.

+1
Ответы (1)
  1. 12 января, 02:51
    0
    Вот жутко неэффективное решение, для нормального надо писать решето эратосфена, можно нагуглить, если нужна эффективность

    function isPrime (a : integer) : boolean;

    var

    i, lim : integer;

    begin

    if n < 4 then begin

    if n = 1 then isPrime : = false else isPrime : = true;

    exit;

    end;

    lim : = trunc (sqrt (a)) ;

    for i : = 2 to lim do

    if a mod i = 0 then

    begin

    isPrime : = false;

    exit;

    end;

    isPrime : = true;

    end;

    var

    a : array of array of integer;

    b : array of integer;

    i, j, n : integer;

    begin

    read (n) ;

    setlength (a, n, n) ;

    setlength (b, n) ;

    for i : = 0 to n - 1 do

    for j : = 0 to n - 1 do

    read (a[i, j]) ;

    for i : = 0 to n - 1 do

    begin

    b[i] : = 0;

    for j : = 0 to n - 1 do

    if isPrime (a[i, j]) then inc (b[i]) ;

    end;

    for i : = 0 to n - 1 do

    begin

    if b[i] < = 2 then

    for j : = 0 to n - 1 do

    write (a[i, j], ' ')

    else

    for j : = 0 to n - 1 do write ('0 ') ;

    writeln;

    end;

    end.
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «в двумерном массиве N*N найти простые числа, и если в строках находятся более двух простых чисел то обнулить эти строки. ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы