Departamento de Matemática Mat. (Esp. Ensino), L.C.C. - 3 ano
folha i semestre, 2006/2007
? for (i=1,1000000,i++) ? ## *** last result computed in 265 ms. ? for (i=1,1000000,i+=1) ? ## *** last result computed in 340 ms. ? for (i=1,1000000,i=i+1) ? ## *** last result computed in 413 ms.
Introduza a função seguinte e interprete-a.
\\ cifra shift \\ argumentos: frase sequencia de letras do algabeto, incr o shift cesar(frase,incr=3)= /* incr=3 e' o valor tomado para incr por defeito*/ { local(lista, i, tamanho); if(type(incr)!="t_INT", error("Opcao invalida") ); lista=Vecsmall(frase); tamanho=length(lista); print("incremento "incr); for(i=1,tamanho, lista[i]=((lista[i]-32+incr)%91)+32 ); print(Strchr(lista)); return(Strchr(lista)); }
Use um ciclo while em vez do ciclo for.
gcd(a,n)
e que o inverso de em
, caso exista, pode ser calculado via lift(Mod(1/a,n))
, implemente uma função para a cifra afim.