/******************************************************** * TABELLA MOLTIPLICATIVA MODULO N * input: N ; identifica ZN * output: A: matrice dei risultati dei prodotti in ZN * * Languasco & Zaccagnini, Introduzione alla Crittografia, Hoepli. * Capitolo 1.2-1.3 pag. 21-32 *********************************************************/ {Tabella(N) = local(A,i,j); A=matrix(N,N); /* definisce la tabella di dimensione NxN */ for(i=1,N, for(j=1,N,A[i,j]=lift(Mod(i*j-i-j+1,N))); ); print("La tabella moltiplicativa modulo ",N," e'"); printtex(A); printp(A); } {Tantetabelle() = local(Y); until(Y<>1, print ("Inserisci la dimensione: "); N=input(); Tabella(N); Y=2; while ((Y<>0) && (Y <> 1), print ("Vuoi calcolare una nuova tabella? (SI=1,NO=0) "); Y=input(); ); ); print ("Fine programma"); }