Cześć, chcę stworzyć program, który po podaniu podstawy potegi "a" i wykładnika potęgi "b", które są całkowitymi liczbami naturalnymi z zakresu od 0 do 100 sprawdzi czy można liczbę powstałą po dokoniu potęgowania zapisać za pomocą mniejszej podstawy, jeśli tak to zamieni tę podstawę odpowiednio zwiększając wykładnik. Tak wygląda program, który napisałem:
#include <iostream>
#include <cmath>
using namespace std;
int a=49;
int b=2;
int check(int &a, int &b);
int main()
{
cout<<"Przed podmianka a: "<<a<<" "<<"b: "<<b<<endl;
check(a,b);
cout<<"Po podmiance a: "<<a<<" "<<"b: "<<b<<endl;
return 0;
}
int check(int &a, int &b)
{
for(int i=2; i<=100; i++)
{
for(int j=2; j<=100; j++)
{
if(a==pow((double)i, (double)j))
{
cout<<"Warunek spelniony"<<endl;
a=i;
b=b*j;
return a,b;
}
}
}
return a,b;
}
Wszystko działa poprawnie do momentu gdy podstawą "a" jest jakaś dwucyfrowa nieparzysta liczba (np.49). Czy ktoś już napotkał podobny problem i wie co robię nie tak?