我想找到任何数字的总因子。在数论中,因式分解是将合数分解为更小的非平凡除数,当它们相乘时等于原始整数。你的工作是计算一个数字的唯一分解数(至少包含两个大于一的正整数)。
例如:12 有 3 个独特的因式分解: 2*2*3, 2*6, 3*4 。注意:3*4 和 4*3 不认为是不同的。
我试图找到这一点,但并没有完全准确。这是我的代码:
#include<iostream>
using namespace std;
int count=0;
void factor(int n,int c,int n1)
{
for(int i=n1; i<n ; i++)
{
if(c*i==n)
{count++;
return;}
else
if(c*i>n)
return;
else
factor(n,c*i,i+1);
}
return;
}
int main()
{
int num,n;
cin>>num;
for(int i=0 ; i<num ; i++)
{
cin>>n;
count=0;
factor(n,1,1);
cout<<count<<endl;
}
return 0;
}
输入是测试用例的数量,后跟测试用例(数字)。
示例:输入:3 12 36 3150
输出:3 8 91