Răspuns:
#include <iostream>
using namespace std;
int a,b;
int MaxImp(int a, int b)
{
int p, d, num,gasit=0;
for (num=b; num>=a; num--)
{
p=1;
for (d=1; d*d<num; d++)
{
if (num%d==0)
{
if (d%2==1) p*=d;
if ((num/d)%d==1) p*=num/d;
}
}
if (d*d==num)
{
if (d%2==1) p*=d;
}
if (p>num)
{
gasit=1; break;
}
}
if (gasit) return num;
else return 0;
}
int main()
{
cin >> a >> b;
cout << MaxImp(a,b);
return 0;
}
Explicație: