REM Поиск циклов при суммировании кубов цифр
DECLARE FUNCTION nkub& (N&)
DIM MAS&(100): ' Массив для последовательности чисел
CLS
INPUT "Введите число - ", N&
K = 0: MAS&(0) = N&
m1: K = K + 1: ' Счетчик числа шагов
MAS&(K) = nkub&(MAS&(K - 1))
PRINT "Шаг ="; K, " N ="; MAS&(K)
FOR I = 0 TO K - 1: ' Поиск совпадения с предыдущими числами
IF MAS&(I) = MAS&(K) THEN GOTO m2
NEXT I
GOTO m1
m2: PRINT "Обнаружен цикл": PRINT "Начало цикла шаг "; I
PRINT "Конец цикла шаг "; K - 1
END
FUNCTION nkub& (N&)
REM Преобразование числа в сумму кубов его цифр
DIM S AS INTEGER, M AS LONG
S = 0: M = N&
WHILE M <> 0
D = M MOD 10: M = (M - D) / 10: ' Выделение очередной цифры
S = S + D * D * D: ' Накопление суммы кубов
WEND
nkub& = S
END FUNCTION