By definition, a factor is one of two or more positive numbers that when multiplied together produce a given product.  For example, given the integer 24, the factors are [1, 2, 3, 4, 6, 8, 12, 24].

The below algorithm tests the range of numbers from 1 to a given integer.  If the given integer divided by the current number returns a remainder of 0, then the current number is a factor of the given integer.

public List<int> GetFactors(int i)
{
    return Enumerable.Range(1, i).Where(x => i % x == 0).ToList();
}

 

Get the source control, including unit tests: GetFactors.zip (9.85 kb)