[leetcode]326 3的幂
给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true
;否则,返回 false
。
整数 n
是 3 的幂次方需满足:存在整数 x
使得 n == 3x
思路
有点脑筋急转弯的题目,第一思路肯定是用循环一直取余,看看是否能保证除3的余数一直是0;
还可以又一个思路,就是3这个数字是质数,也就是说,如果一个数n它能被\(3^i\)整除,这也就说明了它本身一定是3的某次幂(因为\(3^i\)最小单元是3),同时由于题目给出了一个范围(32位整形的范围),我们取i为20就可以大于所有的输入了,判断条件就可以非常的简单了;
代码
class Solution:
def isPowerOfThree(self, n: int) -> bool:
return n > 0 and 3486784401 % n == 0
学习java的新手,尝试将学到的内容总结为博客,内容如有错误,欢迎指正,感激不尽。