int Solution::isPower(int A) {
long double a,b;
// cout<<a;
if(A==1)
{
return 1;
}
for(float i=2;i<=A;i++)
{
b=1/i;
//cout<<i<<endl;
a=pow(A,b);
//cout<<a<<endl<<(int)a<<endl;
if((int)a == a)
{
return 1;
}
}
return 0;
}
Даже если int (a) равно a, оно не возвращается 1. Проблема заключается в использовании длинного двойного числа типа. Но когда я использую тип с плавающей запятой, он не работает для больших чисел.