2016-06-16 1 views
0

Я хочу проверить, находится ли входная переменная в базе POWER.Проверьте, находится ли переменная в базе POWER + PHP

Например:

вход: 25; // да у власти пау (5,2) вход: 26; // нет не в силе

Я сделал код, но его время, принимая

$var = 25; 
$half = round($var/2); 
for($x = 0; $x <= $half; $x++){ 
    for($y = 0; $y <= $half; $y++){ 
     if(pow($x, $y) === $var){ 
      $output = "1"; 
     } 
    } 
} 
if(!$output){ 
    echo "0"; 
}else{ 
    echo "1"; 
}  
+1

В чем проблема? Возможно, вам нужно сломать совпадение вашего условия if. [Пример] (https://3v4l.org/f13Dr) –

+0

Также укажите ** $ output = 0; ** в начале, иначе он покажет «Неопределенная переменная: вывод». –

+0

Ну, в этом случае, если я введу какое-то большое значение, например, 15625, и это займет время из-за половины. любое предложение ? ? ? –

ответ

1

Вы можете использовать sqrt, который вернет квадратный корень из заданного числа, а затем просто проверьте, является ли возвращаемое значение десятичным или нет.

$var = 25; 
$sqrt = sqrt($var); 
if($sqrt !== floor($sqrt)) { 
    echo 'no power'; 
} else { 
    echo 'power'; 
} 
Смежные вопросы