pow — Является ли данное число степенью любого другого натурального числа php?

Я пытался найти для заданного положительного целого числа Z, проверить, можно ли записать Z как PQ, где P и Q — положительные целые числа больше 1. Если Z можно записать как PQ, вернуть 1, иначе возврат 0

Я много пробовал с онлайн-решением,

Проверьте, является ли одно целое число целой степенью другого

Нахождение, является ли число степенью 2

но это не то, что мне нужно, ни подсказка, ни подсказки?

0

Решение

Вот наивный метод — попробуйте каждую комбинацию:

function check($z) {
for($p = 2; $p < sqrt($z); $p++) {

if($z % $p > 0) {
continue;
}

$q = $p;

for($i = 1; $q < $z; $i++) {
$q *= $p;
}

if($q == $z) {
//print "$z = $p^$i";
return 1;
}
}

return 0;
}

Точно так же, используя встроенный PHP log функция. Но это может быть не так точно (при наличии ошибок округления возможны ложные срабатывания).

function check($z) {
for($p = 2; $p < sqrt($z); $p++) {
$q = log($z,$p);
if($q == round($q)) {
return 1;
}
}

return 0;
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]