Informatică, întrebare adresată de pinkp, 9 ani în urmă

Sa se calculeze n la puterea k modul p. n,k,p<= 1.000.000.000.

Răspunsuri la întrebare

Răspuns de Utilizator anonim
1
#include <iostream>
using namespace std;
int main()
{
  long long int n,k,p,m,sol=1;
  cin>>n>>k>>p;
   m=n;
  for(int i=0;(1<<i)<=k;i++)
  {
     if((1<<i)&k)
         sol=(sol*m)%p;
      m=(m*m)%p;
  }
    cout<<sol;
return 0;
}

pinkp: Mulțumesc mult! Din păcate nu înțeleg algoritmul. Mă puteți ajuta cu explicații sau comentarii?
Utilizator anonim: se numeste "ridicare la putere in timp logaritmic"
Utilizator anonim: cel mai simplu ar fi sa iei un exemplu ca sa il intelegi
pinkp: Muțlumesc
Alte întrebări interesante