You’d do better to repeatedly divide y into x. The first time you get a non-zero remainder you know x is not an integer power of y.

```
while (x%y == 0) x = x / y
return x == 1
```

This deals with your odd/even point on the first iteration.

You’d do better to repeatedly divide y into x. The first time you get a non-zero remainder you know x is not an integer power of y.

```
while (x%y == 0) x = x / y
return x == 1
```

This deals with your odd/even point on the first iteration.