Создать приложение, которое при вводе пользователем натурального числа S выдаёт все пары натуральных чисел R и Z удовлетворяющие следующим условиям: R*Z=S;Z! кратно 5, где Z! – факториал числа Z, т.е. Z!=1*2*..*Z;R-простое число, т.е. из натуральных нацело делится только на 1 и на само себя; НОД(R,S)≠5, где НОД(R,S)-наибольший общи делитель R и S -Pascal(Паскаль)

uses crt;
function Proiz(a,b,c:longint):boolean;
begin
if b*c=a then Proiz:=true
else Proiz:=false;
end;
 
function Kratn(a:longint):boolean;
function Fakt(a:longint):longint;
begin
if a=1 then Fakt:=1
else Fakt:=a*Fakt(a-1);
end;
begin
if Fakt(a) mod 5=0 then Kratn:=true
else Kratn:=false;
end;
function Prost(a:longint):boolean;
var i:longint;
begin
Prost:=true;
for i:=2 to round(sqrt(a)) do
if a mod i=0 then
 begin
  Prost:=false;
  break;
 end;
end;
function Nerav(a,b:longint):boolean;
function NOD(a,b:longint):longint;
begin
while a<>b do
if a>b then a:=a-b else b:=b-a;
NOD:=a;
end;
begin
if NOD(a,b)<>5 then Nerav:=true
else Nerav:=false;
end;
 
var s,r,z,i,j,k:longint;
begin
clrscr;
write('Введите число S=');
readln(s);
k:=0;
for r:=2 to s div 2 do
for z:=s div 2 downto 2 do
if Proiz(s,r,z) and Kratn(z) and Prost(r) and Nerav(r,z)then
 begin
  writeln(r,'  ',z);
  k:=1;
 end;
if k=0 then write('Таких пар нет!');
readln
end.

Результат работы программы

Leave a Comment

− 1 = 3