zoukankan      html  css  js  c++  java
  • POJ3421(质因数分解)

    X-factor Chains
    Time Limit: 1000MS   Memory Limit: 65536K
    Total Submissions: 6501   Accepted: 2023

    Description

    Given a positive integer X, an X-factor chain of length m is a sequence of integers,

    1 = X0X1X2, …, Xm = X

    satisfying

    Xi < Xi+1 and Xi | Xi+1 where a | b means a perfectly divides into b.

    Now we are interested in the maximum length of X-factor chains and the number of chains of such length.

    Input

    The input consists of several test cases. Each contains a positive integer X (X ≤ 220).

    Output

    For each test case, output the maximum length and the number of such X-factors chains.

    Sample Input

    2
    3
    4
    10
    100

    Sample Output

    1 1
    1 1
    2 1
    2 2
    4 6
    思路:将x进行质因数分解,X-factor Chains中(第因一项永为1,所以不计)第i项就是将质因数进行排列后前i项的积。所以length为质因数的个数。numbeu为质因数全排列的种数。相同质因数之间的排列要去重。
    #include <iostream>
    #include <map>
    using namespace std;
    typedef unsigned long long ull;
    map<int,int> prime_factor(int n)//质因数分解 
    {
        map<int,int> res;
        for(int i=2;i*i<=n;i++)
        {
            while(n%i==0)
            {
                res[i]++;
                n/=i;
            }
        }
        if(n!=1)
        {
            res[n]++;
        }
        return res;
    }
    ull fact(int n)
    {
        ull res=1;
        for(int i=2;i<=n;i++)
        {
            res*=i;
        }
        return res;
    }
    int x;
    int main()
    {
        while(cin>>x)
        {
            map<int,int> res=prime_factor(x);
            int len=0;
            for(map<int,int>::const_iterator it=res.begin();it!=res.end();it++)
            {
                len+=it->second;
            }
            ull cnt=fact(len);
            for(map<int,int>::const_iterator it=res.begin();it!=res.end();it++)
            {
                cnt/=fact(it->second);//去重 
            }
            cout<<len<<" "<<cnt<<endl;
        }
        return 0;
    }
  • 相关阅读:
    共享经济
    滑动用hammer
    js 数组去重 的5种方法
    js ajax上传图片到服务器
    js url图片转bese64
    去除移动端 a标签 点击有一个 阴影效果
    css 文字超出变 ... 点点点
    h5手势库 hammer.js
    xshell linux传文件
    IO流(Properties存取)
  • 原文地址:https://www.cnblogs.com/program-ccc/p/5681752.html
Copyright © 2011-2022 走看看