Decrescita programmata

Matematica Senza Frontiere – 10/2/2015 n. 2

Annamaria si diverte con le successioni numeriche.
Sceglie un numero intero naturale come primo numero della successione; calcola il successivo moltiplicando tra loro le cifre del numero.
Procede analogamente con il numero ottenuto finché non ottiene un numero con una sola cifra.

Ad esempio, iniziando da 68, ottiene la successione di quattro numeri 68, 48, 32, 6.

Quale numero intero naturale inferiore a 100 comporta, seguendo il procedimento descritto, la successione più lunga?

Vedi la discussione.

Il programma produce tutte le serie per i numeri da 1 a 99

Uses Crt;
Var  i: Integer;

Procedure NUMERO(num: Integer);
Var
   dd, uu: Byte;
Begin
   Write(num, ': ');
   While(num >= 10) Do
      Begin
         dd :=num Div 10;
         uu :=num Mod 10;
         num:=dd*uu;
         Write(num, ' ');
      End;
End;

Begin
   For i:=1 To 50 Do
      Begin
         GotoXY(1,i);
         NUMERO(i)
      End;
   For i:=51 To 99 Do
      Begin
         GotoXY(15,i-50);
         NUMERO(i)
      End;
   GotoXY(1,52);
   Readln;
End.

msf_2015_02_p