Домашние задания: Информатика

Помогите пожалуйста решить задачу по программированию (Pasсal ABC.net).

Помогите пожалуйста решить задачу по программированию (Pasсal ABC.net).
Найдите все трехзначные числа (их два) , любая целая положительная степень которых оканчивается теми же тремя цифрами и в том же порядке.
Чтоб ты легче воспринимал информацию, сразу скажу что эти числа (376 и 625).
-----------
Начну с того что при перемножении 2 числе, последние 3 цифры перемноженного числа зависят только от последних 3х цифр чисел которые мы перемножаем (см. картинку 2).
Это значит что если квадрат числа, который имеет такие-же последние 3 цифры что и само число, мы еще раз умножим на это число (тем самым возведя его в куб), мы все равно получим такие-же последние 3 цифры что и у самого числа. Также будет происходить и для остальных целых степеней числа.
Это значит что если число при возведении в квадрат будет иметь такие-же последние 3 цифры что и само число, тогда оно будет иметь одинаковые последние 3 цифры при возведении в любую целую степень.
----------
Напишем программу которая перебирает все трехзначные числа, и смотрит совпадения последних 3х разрядов числа и его квадрата.
-------------
Pascal ABC.net
Комментарии к коду можешь увидеть на картинке 1.
------------
var x_100_1,x_100_2,x_10_1,x_10_2,x_1,x_2,k,n1,n2: integer;
begin
for k:=100 to 999 do
begin
x_100_1:=k div 100;
x_100_2:=k*k mod 1000 div 100;
x_10_1:=k mod 100 div 10;
x_10_2:=k*k mod 100 div 10;
x_1:=k mod 10;
x_2:=k*k mod 10;
if (x_100_1=x_100_2) and (x_10_1=x_10_2) and (x_1=x_2) then
if n1<>0 then
n2:=k
else
n1:=k;
end;
writeln(n1,' -',n1*n1);
writeln(n2,' -',n2*n2);
readln();
end.
Дмитрий Сосов
Дмитрий Сосов
4 109
Лучший ответ