The most obvious approach to prime factoring a number is to loop through values less than that number and see if they divide into that number evenly. Each time you find such a factor, you divide it from the number. You continue this process until the modified number equals 1.
The following method uses this approach:
// Divide by smaller values up the the square root of the value.private List<long> Method1(long number){ checked { List<long> factors = new List<long>(); // Pull out 2s. while (number % 2 == 0) { factors.Add(2); number /= 2; } // Pull out odd factors. long limit = (long)Math.Sqrt(number); for (long factor = 3; factor <= limit; factor += 2) { while (number % factor == 0) { factors.Add(factor); number /= factor; ...