Назовем натуральное число палиндромом, если его запись читается одинаково с начала и с конца (как, например 4884, 393, 1). определить, является ли заданное число и его квадрат палиндромами.
Function isPali(A : int64) : Boolean; Var B : int64; Begin B:=1; While B<A do B:=B*10; B:=B div 10; If A>9 then isPali:=((A div B)=(A mod 10)) and isPali(A mod B div 10) else isPali:=True; end;
Begin Readln(n); If isPali(n) then Writeln('Это полиндром.') else Writeln('Это не полиндром.'); Write('Его квадрат ',sqr(n)); If isPali(sqr(n)) then Writeln(' полиндром.') else Writeln(' не полиндром.'); end.
Хотя в Pabc.net есть функция и покороче:
Function IsPali(B : Longint) : Boolean; Begin IsPali:=(B=IntRevers(B)); end;
Function isPali(A : int64) : Boolean;
Var B : int64;
Begin
B:=1;
While B<A do B:=B*10;
B:=B div 10;
If A>9 then isPali:=((A div B)=(A mod 10)) and isPali(A mod B div 10) else isPali:=True;
end;
Begin
Readln(n);
If isPali(n) then Writeln('Это полиндром.') else Writeln('Это не полиндром.');
Write('Его квадрат ',sqr(n));
If isPali(sqr(n)) then Writeln(' полиндром.') else Writeln(' не полиндром.');
end.
Хотя в Pabc.net есть функция и покороче:
Function IsPali(B : Longint) : Boolean;
Begin
IsPali:=(B=IntRevers(B));
end;