Так как язык не указан, приведу пример на SWI-Prolog.
Код:
read_int(Int) :- read(Int), integer(Int).split_int_by_numbers(0, []) :- !.split_int_by_numbers(N, [Number|Ints]) :- Number is mod(N, 10), RestN is div(N, 10), split_int_by_numbers(RestN, Ints).test_to_div(_, []).test_to_div(N, [Number|Ints]) :- mod(N, Number) =:= 0, test_to_div(N, Ints). test(Int) :- split_int_by_numbers(Int, Numbers), test_to_div(Int, Numbers), write(Int), write(" - Yes!"), nl.test(Int) :- write(Int), write(" - No!"), nl.?- read_int(Int), test(Int).
В результате элементы массива А равны
A[0] := 2 A[1] := 3 A[2] := 4 A[3] := 5 A[4] := 6
A[5] := 7 A[6] := 8 A[7] := 9 A[8] := 10 A[9] := 1
Объяснение:
Сначала задаются элементы массива с индексами от 0 до 9 равные от 1 до 10.
Затем переменной t присваивается значение первого элемента массива (с индексом 0 и равного 1).
Потом происходит сдвиг значений элементов на один влево по индексу (первый элемент с индексом 0 становится равным второму элементу с индексом 1 и т.д. до 8 элемента).
В конце последнему элементу массива с индексом 9 присваивают значение их переменной t.
for i := 0 to 9 do A[i] := i + 1;
A[0]:= 0 + 1 = 1
A[1] := 1 + 1 = 2
A[2] := 2 + 1 = 3
A[3] := 3 + 1 = 4
A[4] := 4 + 1 = 5
A[5] := 5 + 1 = 6
A[6] :=6 + 1 = 7
A[7] := 7 + 1 = 8
A[8] := 8 + 1 = 9
A[9] := 9 + 1 = 10
t := A[0];
t := 1
for i:= 1 to 9 do A[i-1] := A[i];
A[1-1] := A[1] A[0] := 2
A[2-1] := A[2] A[1] := 3
A[3-1] := A[3] A[2] := 4
A[4-1] := A[4] A[3] := 5
A[5-1] := A[5] A[4] := 6
A[6-1] := A[6] A[5] := 7
A[7-1] := A[7] A[6] := 8
A[8-1] := A[8] A[7] := 9
A[9-1] := A[9] A[8] := 10
A[9] := t;
A[9] := 1