X的因子链(分解质因数,)
Posted wjc2021
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了X的因子链(分解质因数,)相关的知识,希望对你有一定的参考价值。
输入正整数 XX,求 XX 的大于 11 的因子组成的满足任意前一项都能整除后一项的严格递增序列的最大长度,以及满足最大长度的序列的个数。
输入格式
输入包含多组数据,每组数据占一行,包含一个正整数表示 XX。
输出格式
对于每组数据,输出序列的最大长度以及满足最大长度的序列的个数。
每个结果占一行。
数据范围
1≤X≤2201≤X≤220
输入样例:
2
3
4
10
100
输出样例:
1 1
1 1
2 1
2 2
4 6
#include<iostream> using namespace std; const int maxn= (1 << 20 ) + 10; int primes[maxn],cnt; bool st[maxn]; int minp[maxn]; long long f[30]; void get_prime(int n) { for(int i=2;i<=n;i++) { if(!st[i]) { primes[++cnt]=i; minp[i]=i; } for(int j=1;primes[j]*i<=n;j++) { st[primes[j]*i]=true; minp[primes[j]*i]=primes[j]; if(i%primes[j]==0) { break; } } } } int main() { get_prime(maxn); f[0]=1; for(int i=1;i<=20;i++) { f[i]=f[i-1]*i; } int x; while(cin >> x) { long long res=1; int tot=0; while(x>1) { int p=minp[x]; int k=0; while(x%p==0) { x/=p; tot++,k++; } res*=f[k]; } cout << tot << " " << f[tot]/res << endl; } return 0; }
以上是关于X的因子链(分解质因数,)的主要内容,如果未能解决你的问题,请参考以下文章