zoukankan      html  css  js  c++  java
  • 1628:X-factor Chain

    1628:X-factor Chain


    时间限制: 1000 ms         内存限制: 524288 KB
    提交数: 122     通过数: 68

    【题目描述】

    原题来自 POJ 3421

    输入正整数 x

    ,求 x 的大于 1

    的因子组成的满足任意前一项都能整除后一项的序列的最大长度,以及满足最大长度的序列的个数。

    【输入】

    多组数据,每组数据一行,包含一个正整数 x

    【输出】

    对于每组数据,输出序列的最大长度以及满足最大长度的序列的个数。

    【输入样例】

    2
    3
    4
    10
    100

    【输出样例】

    1 1
    1 1
    2 1
    2 2
    4 6

    【提示】

    数据范围与提示:

    对于全部数据,1x220

     如果我没有搞错的话,这道题应该算得上是结论题?挺简单的

    序列长度就是该数的每一个质因子的次幂之和(稍微想想就能明白),而排列总数就是组合数学中的不全相异元素的排列。

    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    const int N=22;
    ll n,jc[N+1]={1};
    inline void solve(int x)
    {
        ll ans=0,cnt,k=1;
        for(ll i=2;i*i<=x;i++)
        {
            if(x%i==0)
            {
                cnt=0;
                while(x%i==0)
                {
                    cnt++;
                    x/=i;
                }ans+=cnt;
            k*=jc[cnt];
            }
            
        }
        if(x>1) ans++;
        printf("%lld %lld
    ",ans,jc[ans]/k);
    }
    int main()
    {
        for(int i=1;i<=N;i++)
        jc[i]=jc[i-1]*i;
        while(~scanf("%d",&n))
        {
            solve(n);
        }
        return 0;
    }
  • 相关阅读:
    DataGridView 密码列(显示为*号)的设置
    有關界面化學的一些有趣現象
    电商网站需要ICP证吗
    JS 未结束的字符串常量
    Iframe自适应高度
    JS正则表达式
    界面活性劑的作用
    js转义字符
    解决dbo登录名为空的问题
    肌肤弹性胶原蛋白
  • 原文地址:https://www.cnblogs.com/smartljy/p/11392595.html
Copyright © 2011-2022 走看看