我已经获得了一个用于构建以下函数模板“list primeFactors(unsigned long int n)”的赋值。该函数返回自然数的素数因子分解的整数列表。我已经创建了一个可以推算因子分解的程序但是我在使用列表时遇到了问题。
{{1}}
我的程序不再返回正确的分解数,我不确定问题是什么。
感谢任何帮助
答案 0 :(得分:2)
这可能与返回列表无关。问题是你总是在完成迭代之前返回它:
for (unsigned long int i=2; i <=n; i++)
{
while(n % i == 0)
{
n /= i;
//cout << i << " ";
list.push_back(i);
}
return list; // I think you meant to put this outside the for loop
}
// Probably here is better for the return.
下次尝试使用调试器时,您会更快地看到此问题,然后在此处发布。
答案 1 :(得分:0)
只需返回for循环外的列表
答案 2 :(得分:0)
行return list;
为时尚早。将它移到大括号之外。