Je me suis replongé dans les contests online.
Pour l'un d'eux, je dois trouver les modulos de très grands nombres.
Ex : 500000^180351 divisé par 30931
J'essaye donc en ecrivant
Code : Tout sélectionner
r.f = Mod (Pow (500000.0,180651.0), 30931)
Code : Tout sélectionner
r.f = Mod (Pow (500000.0,180651.0), 30931)
Code : Tout sélectionner
Debug Pow (500000.0,180651.0)
Code : Tout sélectionner
+Infinity
Code : Tout sélectionner
Procedure emod(n.s,modulo)
Protected lrv=1,rez
n=ReverseString(n)
;
For i=0 To Len(n)-1
If i>0
lrv=(lrv*10)%modulo
EndIf
rez+lrv*Val(Mid(n,i+1,1))
Next
rez=rez%modulo
ProcedureReturn rez
EndProcedure
Debug 12346789%97
Debug emod("12346789",97)
Debug emod("123123456487897456123122348987456456789456",97)