Перейти к публикации
  • Объявления

    • TheAndrey

      Правила раздела "Кодинг"   17.03.2018

      Название темы должно отражать суть проблемы. Такие названия как "Помогите", "Не работает" и т.д. не принимаются! В сообщение вставляйте исходный код скрипта, который у вас не работает и обязательно заключайте его в теги. Если код большой, то заключите его в спойлер.
ToRN

Помощь по паскалю

Рекомендованные сообщения

ToRN

Доброго дня. Есть те, кто может переделать код в более простой вид (в коде 2 функции, нужно без них обойтись).
Буду очень благодарен, если кто-то из знающих откликнется на просьбу.

 


program_chisla;

uses crt;

var i,j:integer;
f:boolean;
begin
f:=false;
i:=2;
while (i<=maxint)and not f do
begin
j:=1;
while (j<i)and not f do
if(Per(i,j))and((i-j=Sum(i))or(i-j=Sum(j))) then
begin
f:=true;
write(i,' ',j);
end
else j:=j+1;
if not f then i:=i+1;
end;
end.


function Sum(a:integer):byte;
var b:integer;
s:byte;
begin
s:=0;
b:=a;
while b>0 do
begin
s:=s+b mod 10;
b:=b div 10;
end;
Sum:=s;
end;
function Per(a,b:integer):boolean;
var s1,s2:string;
f:boolean;
begin
str(a,s1);
str(b,s2);
if length(s1)<>length(s2) then
begin
Per:=false;
exit;
end;
f:=true;
while (s1<>'') and f do
if pos(s1[1],s2)=0 then f:=false
else
begin
delete(s2,pos(s1[1],s2),1);
delete(s1,1,1);
end;
Per:=f;
end;

 

На всякий случай условие задачи.

 

post-2405-0-91072900-1414845061_thumb.jpg

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×