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;
    }
  • 相关阅读:
    文件夹打开对话框
    文件打开对话框
    HOOK函数(二)——全局HOOK
    HOOK函数(一)——进程内HOOK
    抓包
    List 访问
    坑爹的EL 表达式。
    tomcat 虚拟目录的安全问题
    框架
    程序员相关词汇
  • 原文地址:https://www.cnblogs.com/smartljy/p/11392595.html
Copyright © 2011-2022 走看看