public static List<int> DoGetFactors(int n)
{
List<int> factors = new List<int>();
// every number is divisible by 1
factors.Add(1);
for (int i = 2; i < n; i++)
{
if (n % i == 0)
{
factors.Add(i);
}
}
// every number is divisible by itself
factors.Add(n);
return factors;
}
How it works:
For a given number, we’ll iterate from 2 till the number (but not the number included) and divide the number with each iteration counter. If the remainder is a 0 (meaning the number is divisible by the current counter) we’ll add the counter to the list. Finally we’ll return the list of all stored counters till the number back. By rule of divisibility every number is always divisible by 1 and itself so we’ll skip those two numbers within our loop.
For a number 12:
12%2=0
12%3=0
12%4=0
12%5=2
12%6=0
12%7=5
12%8=4
12%9=3
12%10=2
12%11=1
Hence the return factors: 1,2,3,4,6,12