您的位置:首页 > 大数据 > 人工智能

【POJ】3421 - X-factor Chains 素数

2017-08-30 16:17 381 查看
http://poj.org/problem?id=3421

将一个数X分解成从1到X的数列,前一个数可以整除后一个数,求最大链长和链的个数。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <queue>
#include <vector>
#include <numeric>
#include <algorithm>
using namespace std;

vector <int> prime_factor_time(int n){
vector <int> v;

for (int i=2;i*i<=n;i++){
int t=0;
while (n%i==0){
t++;
n/=i;
}
v.push_back(t);
}
if (n!=1){
v.push_back(1);
}
return v;
}

long long factor(int n){
long long res=1;
for (int i=1;i<=n;i++){
res*=i;
}
return res;
}
int main(){

int n;
while (cin >> n){
vector <int> f=prime_factor_time(n);
int len= accumulate(f.begin(),f.end(),0);
long long num=factor(len);
for (vector <int>::iterator it=f.begin();it!=f.end();it++){
num/=factor(*it);
}
cout << len << " " << num << endl;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: