Napisałem program na szybkie potęgowanie iteracyjnie. Mógłby ktoś sprawdzić czy kod jest poprawny? Jak go poprawić, żeby liczył liczbę mnożeń?
#include<iostream>
using namespace std;
long long potegowanie(long long p, long long w) // p-podstawa, w-wykladnik
{
long long x = 1;
while(w>0)
{
if (w%2 == 1)
x *= p;
p*= p;
w/=2;
}
return x;
}
int main()
{
long long p;
long long w;
cin>>p>>w;
cout<<potegowanie(p, w);
return 0;
}