94

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

09 марта 2023

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

категория: информатика



33

Вот жутко неэффективное решение, для нормального надо писать решето эратосфена, можно нагуглить, если нужна эффективность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 dobegin 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.

Знаете ответ?


Есть интересный вопрос? Задайте его нашему сообществу, у нас наверняка найдется ответ!
Делитесь опытом и знаниями, зарабатывайте награды и репутацию, заводите новых интересных друзей!
Задавайте интересные вопросы, давайте качественные ответы и зарабатывайте деньги. Подробнее...