
В pascal abc все проходит хорошо, но в турнирной системе используется fpc, и там выдаются ошибки, никак не могу их исправить.
Вот само условие задачи: "Строгим непалиндромом назовем целое число N, которое не является палиндромом в любой позиционной системе счисления в диапазоне от 2 до N - 2. Например, число 6 записывается как 110 2, 20 3 и 12 4, ни одно из которых не является палиндромом, поэтому 6 строго непалиндромное. Напишите программу, которая проверяет, является ли число строгим непалиндромом."
Вот сам код:
function pal(var n,osn: integer): boolean;
var a: array[1..32] of integer;
i,k,m,p: integer;
begin
k:=1; m:=n;
p:=0;
while m>0 do
begin
p:=p+1;
a[p]:=(m mod osn);
m:=m div osn;
end;
for i:=1 to p div 2 do
if a[i]<>a[p-i+1] then k:=0;
pal:=(k>0);
end;
// основная программа
const mx=10;
var m,i,j,tm: integer;
b: array[1..mx] of integer;
priz: boolean;
begin
readln(m);
for i:=1 to m do readln(b[i]);
for i:=1 to m do
begin
priz:=true;
if b[i]<4 then priz:=false;
for j:=2 to ceil(sqrt(b[i])) do
if pal(b[i],j) then priz:=false;
if priz then writeln('YES')
else writeln('NO');
end;
end.



