Что-то, сударь, не узрел я в Вашей программе проверки условия неповторямости цифр. Потому нарисовал по-своему (Паскаль):
Код:
Var
N,i,j,k,m,D:Word;
Begin
for i:=1 to 4 do
for j:=0 to 4 do
if (j<>i) then
for k:=0 to 4 do
if (k<>i) and (k<>j) then
for m:=0 to 4 do
if (m<>i) and (m<>j) and (m<>k) then
begin
N:=2*i*1000+2*j*100+2*k*10+2*m;
D:=TRUNC(Sqrt(N));
if D*D=N then
begin
Writeln(D,'*',D,' = ',N);
Readln;
exit;
end;
end;
Writeln('No such values!');
Readln
End.
Проверил по тому же алгоритму существование решения для пяти- и шестизначных чисел. Нету. Но если, например, отказаться от условия неповторяемости цифр, оставив только требование четности, то - пожалуйста:
162*162 = 26244
478*478 = 228484