Определить, есть ли в данном массиве положительные элементы, делящиеся на заданное число k с остатком 2 — Pascal(Паскаль)

uses crt;
const nmax=20;{в больших массивах произведение вылезет за тип longint}
type mas=array[1..nmax] of integer;

function Elem(m:mas;n:byte;k:integer):boolean;
var i:byte;
    f:boolean;
begin
f:=false;
i:=1;
while (i<=n)and not f do
if(m[i]>0)and(m[i] mod k=2) then f:=true
else i:=i+1;
Elem:=f;
end;
 
var b:mas;
    n,i,j,k:byte;
    a:integer;
begin
clrscr;
randomize;
repeat
write('Размер массива до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Массив:');
for i:=1 to n do
 begin
  repeat
  b[i]:=random(31)-15;
  until b[i]<>0;{нули убрал, а то часто произведение будет ноль}
  write(b[i]:4);
 end;
writeln;
write('Введите число для поиска кратных k=');
readln(k);
if Elem(b,n,k) then write('В массиве есть числа, делящиеся на ',k,' с остатком 2')
else write('В массиве нет чисел, делящиеся на ',k,' с остатком 2');
readln
end.

Leave a Comment

80 − 78 =