puissancerapide 218 Bytes
puimod(a,p,n):={
//calcule de facon recursive la puissance rapide a^p modulo n
 if (p==0){
    return(1);
 } 	
 if (irem(p,2)==0){
    return(puimod(irem(a*a,n),iquo(p,2),n));
 } 
 return(irem(a*puimod(a,p-1,n),n));
};