【发布时间】:2010-10-01 04:30:59
【问题描述】:
我需要找出超过 3000 亿的质因数。我有一个功能正在添加到它们的列表中......非常缓慢!它现在已经运行了大约一个小时,我认为它还有很长的路要走。我这样做是完全错误的还是预期的?
编辑:我试图找到数字 600851475143 的最大素数。
编辑: 结果:
{
List<Int64> ListOfPrimeFactors = new List<Int64>();
Int64 Number = 600851475143;
Int64 DividingNumber = 2;
while (DividingNumber < Number / DividingNumber)
{
if (Number % DividingNumber == 0)
{
ListOfPrimeFactors.Add(DividingNumber);
Number = Number/DividingNumber;
}
else
DividingNumber++;
}
ListOfPrimeFactors.Add(Number);
listBox1.DataSource = ListOfPrimeFactors;
}
}
【问题讨论】:
-
请用适当的语言阐明您要解决的精确问题是什么。你所解释的可能至少有五六种可能的含义。另外,你有任何上限吗? 10^40000000000 是“超过 3000 亿”,可能确实需要几个小时...... :)
-
你的意思是真的要找出超过 300 000 000 000 的素数吗? (作为一个主要因素完全是另外一回事)
-
你是在解决项目欧拉的问题3吗?
-
这是家庭作业吗?
-
(1) 阅读并完全理解en.wikipedia.org/wiki/Prime_number (2) 阅读并完全理解en.wikipedia.org/wiki/Prime_factor (3) 阅读并完全理解en.wikipedia.org/wiki/Integer_factorization (4) 开始思考算法 (5) 选择一个并编码
标签: algorithm prime-factoring fxsl