Pairs Forming LCM LightOJ - 1236

Pairs Forming LCM LightOJ - 1236

题意

问共有多少组数的最大公倍数是n

分析

组合数学 ,唯一分解定理,对于每一个素因子 p i , 如果该素因子共有 n u m i 个,则对于该素因子来说 ( a , b ) 0 n u m i , n u m i ) n u m i , 0 n u m i ) ,去掉重复的一个 ( n u m i , n u m i ) 共有 2 ( n u m i + 1 ) 1

参考代码

int Prime[670000];
const int LEN  = 1e7+1;
bool vis[LEN];
//int Prime[666666];
int cnt = 1;
void init(void)
{
    int n = 1e7;
    for(int i = 2; i <= n; ++i)
    {
        if(!vis[i])
        {
            Prime[cnt++] = i;
            for(LL j = (LL)i +  i; j <= n; j += i)
                vis[j] = 1;
        }

    }
}
int main(void)
{
// const int n = 1e7;
// cout<<n/log(n)<<endl;
    std::ios::sync_with_stdio(false);
    init();
    int T;
    cin>>T;
    int kase = 0;
    while(T--)
    {
        LL n;
        cin>>n;
        int num ;
        LL ans = 1;
        for(int i = 1; i < cnt&& n != 1; ++i)
        {
            if(n%Prime[i]==0)
            {
                num = 0;
                while(n%Prime[i]==0)
                {
                    n /= Prime[i];
                    num++;
                }
                ans *= 2*num+1;//对于某一个质因子来说,共有2(num+1) - 1种选择的方法
            }
        }
        if(n!=1)
            ans *= 3;
        ans = ans/2 + 1;//将重复的除去,并把(n,n) 这种情况给加上
        printf("Case %d: %lld\n",++kase,ans);
    }
    return 0;
}
全部评论

相关推荐

有没有友友知道hr面会问什么我应该反问什么?还有如何防止hr套话啊?还有应该如果催hr推进快一点#字节#OPPO#hr面
牛客989988346号:职业规划,优缺点,为什么选择这个岗,对应聘公司产品的了解和满意度,如果让你改进公司产品你会怎么做,对ai(新技术)的了解,有无其他offer,什么时候能到岗
投递OPPO等公司7个岗位 >
点赞 评论 收藏
分享
04-25 19:29
已编辑
宁波大学 运营
被普调的六边形战士很高大:你我美牛孩
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务