largest prime factor csharp

Code Example - largest prime factor csharp

                
                        static long LargestFactor(long n)
        {
            long lastFactor;
            if (n%2==0)
            {
                lastFactor = 2;
                n/=2;
                while (n % 2 == 0)
                    n/=2;
            }
            else
            {
                lastFactor = 1;
            }
            long factor = 3;
            long maxFactor = Convert.ToInt64(Math.Sqrt(n));
            while (n > 1 && factor <= maxFactor)
            {
                if(n % factor == 0)
                {
                    n/=factor;
                    lastFactor=factor;
                    while (n % factor == 0)
                        n/= factor;
                    maxFactor = Convert.ToInt64(Math.Sqrt(n));
                }
                factor += 2;
            }
            if (n == 1)
                return lastFactor;
            else
                return n;
        }