Crittografia RSA ed esponenziazione veloce

Ciao, questa è la mia prima domanda sul forum.
Ho risolto il problema Crittografia RSA, usando l’algoritmo di esponenziazione veloce. Ma sebbene mi sembri tutto corretto il grader mi da solo 25/100. Qualsiasi consiglio è ben accetto.
Ecco qui il mio codice in C++:

int power(int N, int a, int b) {
    a%=N;
    int ans=1;
    while(b>0) {
        if(b&1) ans=(ans*a)%N;
        a=(a*a)%N;
        b /= 2 ;
    }return ans;
}
void decifra(int N, int d, int L, int* messaggio, char* plaintext) {
    plaintext[L]='\0';
    for(ll i=0; i<L; i++) {
        plaintext[i]=power(N, messaggio[i], d);
    }
}

Lavora con i long long dentro la power

1 Mi Piace

Ciao, ti ringrazio adesso funziona. Credevo non fosse possibile modificare i valori in input di una funzione da int a long long, dato che già nella funzione decifra erano stati dichiarati come int :grin:.