Чтобы проверить, является ли число степенью n
с рекурсивной функцией:
function isPowOfn(int n, int number) {
return (number == 1 ? TRUE : (number % n != 0 ? FALSE : isPowOfn(n, number / n)));
}
или (в соответствии с предложением WhozCraig)
function isPowOfn(int n, int number) {
return value == 1 || (value % n == 0 && isPowOfn(n, number / n))
}
Примеры ввода-вывода:
in: 2, 6
processing: 3
out: FALSE
in: 2, 16
processing: 8 - 4 - 2 - 1
out: TRUE
in: 2, 162
processing: 81
out: FALSE
in: 3, 81
processing: 27 - 9 - 3 - 1
out: TRUE
in: 5, 244140625
processing: 48828125 - 9765625 - 1953125 - 390625 - 78125 - 15625 - 3125 - 625 - 125 - 25 - 5 - 1
out: TRUE
in: 4, 67957741992
processing: 16989435498
out: FALSE