Ввести трехзначное число. Если сумма цифр числа четная, то увеличить число на 5, в противном случае уменьшить на 5. Если ввели не трехзначное число, должна появиться надпись об этом, и вычисления не производятся.
Вот жутко неэффективное решение, для нормального надо писать решето эратосфена, можно нагуглить, если нужна эффективность
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.
Program menu; uses crt; var m, i: integer; n, z, x, b: longint; begin Writeln('Выберете пункт меню:'); Writeln('[1]Вычисление суммы цыфр числа N'); Writeln('[2]Вывод на экран таблицы квадратов первого десятка'); Writeln('[3]Дано число N. Определить его четность'); Writeln('[4]Выход'); read(m); case m of 1: begin clrscr; writeln('Введите число N:'); read(n); x := 10; z := n mod x; while n div x > 0 do begin b := x; x := x * 10; z := z + n mod x div b; end; Writeln('ответ: ', z); end; 2: begin clrscr; for i := 1 to 10 do begin writeln('Квадрат ', i, ' = ', sqr(i)); end; end; 3: begin clrscr; writeln('Введите число N:'); read(n); if (n mod 2 ) = 0 then writeln('Число ', n, ' четное.') else writeln('Число ', n, ' не четное.'); end; 4: exit; end; end.
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.
uses crt;
var m, i: integer;
n, z, x, b: longint;
begin
Writeln('Выберете пункт меню:');
Writeln('[1]Вычисление суммы цыфр числа N');
Writeln('[2]Вывод на экран таблицы квадратов первого десятка');
Writeln('[3]Дано число N. Определить его четность');
Writeln('[4]Выход');
read(m);
case m of 1:
begin
clrscr;
writeln('Введите число N:');
read(n);
x := 10;
z := n mod x;
while n div x > 0 do
begin
b := x;
x := x * 10;
z := z + n mod x div b;
end;
Writeln('ответ: ', z);
end;
2: begin
clrscr;
for i := 1 to 10 do
begin
writeln('Квадрат ', i, ' = ', sqr(i));
end;
end;
3: begin
clrscr;
writeln('Введите число N:');
read(n);
if (n mod 2 ) = 0 then writeln('Число ', n, ' четное.') else writeln('Число ', n, ' не четное.');
end;
4: exit; end;
end.