Qual è l'algoritmo su cui si basa il programma? Descrivilo...