我的程序当前按升序输出正整数的素数因子分解。我正在试图弄清楚如何设置函数,以便它按降序输出数字。
例如,showFactors(100)当前输出“2 2 5 5”。
相反,我希望它输出“5 5 2 2”。
public void CreateGroups(string[] groups)
{
Groups.AddRange(Context.ConnectionId, groups);
}
我觉得应该通过简单地重新排列cout呼叫的位置来进行简单的修复,但到目前为止我还没有运气。
编辑:是的,它就像切换第20行和第21行一样简单。
答案 0 :(得分:2)
#include <iostream>
using namespace std;
void sf (int number,int factor=2)
{
if (number<2)
return;
if (number%factor == 0)
{
sf (number/factor,factor);
cout<<factor<<"\t";
}
else
sf (number,factor+1);
}
int main ()
{
sf (1729);
cout<<"\n";
return 0;
}
答案 1 :(得分:0)
这是我的Ruby解决方案,用于获取给定数量的素数的列表。也许会帮助某人
def prime_factorization(num)
(2...num).each do |fact|
if (num % fact == 0)
otherFact = num / fact
return [ *prime_factorization(fact), *prime_factorization(otherFact) ]
end
end
return [num]
end