分解因素的种数

Posted fangzheng-nie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分解因素的种数相关的知识,希望对你有一定的参考价值。

题目描述

给出一个正整数a,要求分解成若干个正整数的乘积,即a=a1*a2*a3*...*an,并且1<a1<=a2<=a3<=...<=an,问这样的分解方案有多少种。注意a=a也是一种分解。
 

输入

第一行是测试数据的组数n,后面n行,每行包括一个正整数a(1<a<32768)。

输出

N行,每行输出一个个正整数,表示分解方案数。
 

样例输入

2
2
20

样例输出

1
4
#include <iostream>
#include <cstdio> 
using namespace std;
int f(int n,int m)
{
    int ans=1;              //算上本身那种情况 
    if(n==1) 
            return 0;
   for(int i=m;i*i<=n;i++)//从2开始遍历找所有的能分解的情况 
    {
	  if(n%i==0)
	  {  
	     ans+=f(n/i,i);  
	   } 
	}
	return ans; 
} 
int main()
{  
	int n,a; 
	cin>>n; 
	for(int i=1;i<=n;i++)
	{ 
	    cin>>a;  
    	   cout<< f(a,2)<<endl; 
	 }  
	 return 0; 
}
 

  

 

以上是关于分解因素的种数的主要内容,如果未能解决你的问题,请参考以下文章

算法15---数论6---素数,回文素数 分解质因素

递归分解因数

1200:分解因数

ybt1200 分解因数

方差分析

时间序列的因素分析法