Первая ошибка, «не все пути кода возвращают значение» означает, что существует путь, по которому код может следовать, где не будет возвращено значение (то есть: вызов isHodder (1)) Вам нужно вернуть некоторое значение вне цикла for. Кроме того, поскольку у вас есть блок if / else внутри второго цикла for, строка
k=(2^j)-1;
никогда не будет исполнено.
static int isHodder(int n)
{
int k = n;
for (int i = 2; i <= n / 2; i++)
{
if ((n % 1) == 0)
{
return 0;
}
else
{
for (int j = 2; j <= k; j++)
{
if (n == (2 ^ j) - 1)
{
return 1;
}
else
{
return 0;
}
k = (2 ^ j) - 1;
}
}
}
return 0;
}