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 lift(Mod(1/a,n)), implemente uma função para a cifra afim.