Вот что я пробовал, но это дает мне неправильный вывод. Может ли кто-нибудь указать, в чем ошибка?Для заданного целого Z проверить, можно ли записать Z в виде P^Q, где Q и P - целые положительные числа.
function superPower($n) {
$response = false;
$n = abs($n);
if ($n < 2) {
$response = true;
}
for ($i=2;$i<$n;$i++) {
for ($j=2;$j<$n;$j++) {
if (pow($i,$j) == $n) {
$response = true;
}
}
}
return $response;
}
Например, если я даю ему номер 25, он дает 1 как выход. // Исправлено Но если я дам 26, это все равно дает мне 1, что неправильно.
я вижу аргумент с именем '$ Z', но не присвоенных' $ n'. Я что-то пропустил? – Javier
Возможно, использование логарифмов может ускорить вещание вдоль –
Кстати, слишком много итераций. Максимальный '$ i' должен быть' sqrt ($ n) ', Maximum' $ j' должен быть 'ln ($ n)/ln ($ i)' (такой, что i^j> = n) – Javier