我需要找出超过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;
}
}
您是否记得将要因式分解的数字除以找到的每个因数?
举例来说,您发现 2 是一个因数。您可以将其添加到因子列表中,但然后将尝试分解的数字除以该值。
现在您只需搜索 1500 亿的因数。每次你都应该从你刚刚找到的因素开始。因此,如果 2 是一个因素,请再次测试 2。如果您找到的下一个因子是 3,则无需再次从 2 进行测试。
等等...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)