PS:
come funzione è un po' lunga ma a me sembra valida.