
1) J'ai une opération à l'intérieur de la boucle, nommément:
m = (m * m) mod p;
La première fois m sera très grand et l'opération de multiplication tournera au O(M^2) (M = bitsSignificatifs(m), donc en théorie on est en lb2(m) mais je mets de côté pour simplifier). Les fois subséquentes on tombe dans du O(P^2) puisque m < p.
A priori j'aurais tendance à borner en M^2 pour simplifier, mais si on rajoute:
m = m mod p;
Avant la boucle, alors le problème semble plus facile, car m >> p. Après je sais pas si c'est pertinent, j'aurais tendance à dire que non. Qu'en pensez-vous?
2) Mettons que j'ai une boucle qui s'exécute N fois, et dans laquelle j'ai des opérations prenant N itérations et d'autres prenant M. La complexité serait O(N*(N+M)). On peut exprimer ça comme ça? J'ai jamais vu nulle part ailleurs

Y a pas une supposition raisonnable qui peut me permettre de retomber en O(N^2) pour simplifier?
Merci d'avance, je suis un peu paumé
