using namespace std; int main() { size_t Result = 1, a, b; cin >> a >> b; cin.get(); if(a < 1 && a > 9){return 0;} if(b < 1 && b > 104){return 0;} for(unsigned short i(0); i < b; i++){ Result *= a; } cout << "a^b = " << a << "^" << b << " = " << Result << flush; cin.get(); return 0; } P/S/ учитывая размер чисел, вам понадобится все это делать либо с типом double либо воспользоваться большими числами))) так что тип Result будет даубл а в данной строке вставляем приведение : Result *= (double)a;. Ну и собственно все должно работать.
long long p=1, s=A; for(long b=B; b>0; b>>1) { // сдвиг можно заменить на деление if(b&1) p*=s; // результат s*=s; // A в целой степени двойки } // "p" просто напечатать