LeetCode 326. Power of Three 3的幂

题目链接:点击这里

在这里插入图片描述
如果已知big3是一个很大的3的幂,若big3%n==0,那么n也是3的幂。(此方法对素数有效)

要做的就是找到int范围内最大的3的幂:
b i g 3 = 3 k ,    k = log 3 I N T _ M A X big3 = 3^k, \ \ k = \log_{3}{INT\_{MAX}}

class Solution {
public:
    bool isPowerOfThree(int n) {
        if(n<=0)    return false;
        int k = log(INT_MAX)/log(3);    //换底公式
        int big3 = pow(3,k);
        return big3%n==0;
    }
};

已知整数范围内的3的幂次最大是1162261467:

class Solution {
public:
    bool isPowerOfThree(int n) {
        return n > 0 && 1162261467%n == 0;
    }
};
发布了690 篇原创文章 · 获赞 103 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/qq_42815188/article/details/104059346