我有一个示例控制台应用程序,它有一个计算给定数字因子的方法,并返回与列表相同的方法。
如果输入的数字小于9位,程序工作正常,但如果数字是12位数,则执行将永久进行,并且没有输出也没有例外。
我附上了执行代码......
static void Main(string[] args)
{
var list = GetFactors(600851475143);
}
static List<long> GetFactors(long bigNum)
{
var list = new List<long>();
long counter = 1;
try
{
while (counter <= bigNum / 2)
{
if (bigNum % counter == 0)
{
list.Add(counter);
}
counter++;
}
}
catch (Exception ex)
{
throw;
}
return list;
}
答案 0 :(得分:3)
......这是预料之中的。 大多数加密算法都基于计算给定数量(素数)因子的计算成本如何。 成本的增量不是线性的,所以最有可能的是,9到12位数之间的跳跃太大(使用未经优化的算法),你很快就无法看到结果。
网上有几个关于它的文件,其中只有一个很多: http://computer.howstuffworks.com/computing-power.htm