Разбор задачи A. Ошибка копирования
Возможны 3 варианта разбиения числа на основание и показатель степени. Находим максимальный из них. Для упрощения кода можно использовать тип pair для хранения значения и его представления в виде строки, а после нахождения максимума среди трех пар – вывести второй элемент пары.
pair<double,string> mp(int o,int p){
return make_pair(pow(double(o),p),to_string(o)+"^"+to_string(p));
}
int main()
{ int n;
cin>>n;
cout<<max({make_pair(double(n),to_string(n)),
mp(n/10,n%10),mp(n/100,n%100)}).second<<"\n";
}