non so se possa servirti ma tu nella funzione primo(), determini se p è primo dividendolo per tutti i numeri che vanno da p-1 a 2.
E' una perdita di tempo inutile dal momento che basta fare la divisione da 2 fino all'intero più vicino per eccesso alla radice quadrata.
Cioè se voglio sapere se 23 è primo basta provare a dividerlo per 2, 3, 4 e 5
![]()