前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Leetcode 第 234 场周赛 D 好因子的最大数目(经典套路 整数拆分问题)

Leetcode 第 234 场周赛 D 好因子的最大数目(经典套路 整数拆分问题)

作者头像
glm233
发布2021-04-01 17:02:46
3230
发布2021-04-01 17:02:46
举报

这道题其实是一个很经典的套路,设这个数可以被分解成

p_1^{a_1}\cdot p_2^{a_2}.....
p_1^{a_1}\cdot p_2^{a_2}.....

的形式,那么答案就是

\prod a_i
\prod a_i

问题可以归结成一个数分解成若干个数 然后如何分乘积最大

这种题有个结论:

如果%3==0,就是都分成3相乘

如果%3==1,就是都分成3 然后留4 *2*2

如果%3==2 就是留个2

数据范围比较大,上快速幂

代码语言:javascript
复制
class Solution {
public:
    const int mod=1e9+7;
    int qmi(int x,int y){
        int res=1;
        while(y){
            if(y&1)res=(long long)res%mod*x%mod;
            x=(long long)x%mod*x%mod;
            y>>=1;

        }
        return res%mod;
    }
    int maxNiceDivisors(int p) {
        if(p<=3){
            return p;
        }
        else{
            if(p%3==0){
                return qmi(3,p/3);
            }
            else if(p%3==1){
                return qmi(3,(p-4)/3)%mod*2%mod*2%mod;
            }
            else{
                return qmi(3,(p-2)/3)*2%mod;
            }
        }
        return -1;
    }
};
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-03-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档