我试图尽可能地改进这个有趣的算法。最大的素因子算法优化
现在,我有这样的:
using System;
class Program
{
static void Main()
{
ulong num, largest_pFact;
uint i = 2;
string strNum;
Console.Write("Enter number: ");
strNum = Console.ReadLine();
num = ulong.Parse(strNum);
largest_pFact = num;
while (i < Math.Sqrt((double) largest_pFact))
{
if (i % 2 != 0 | i == 2) {
if (largest_pFact % i == 0)
largest_pFact /= i;
}
i++;
}
Console.WriteLine("Largest prime factor of {0} is: {1}", num, largest_pFact);
Console.ReadLine();
}
}
所以任何想法?
谢谢!
编辑:我实现了本的算法,谢谢eveyone的帮助!
的[C#,发现的最大素因子可能重复一个数字](http://stackoverflow.com/questions/2535251/c-finding-the-largest-prime-factor-of-a-number) – 2011-02-10 00:04:50
你的算法是错误的。什么是16的最大素因子? – btilly 2011-02-10 00:06:54
是的,你是对的:P – Vlad 2011-02-10 00:20:21