Find all prime factors of a number?
Short answer: public List<int> PrimeFactors(int n) { List<int> factors = new List<int>(); // Print the number of 2s that divide n while (n % 2 == 0) { factors.Add(2); n /= 2; } // n must be odd at this point for (int i = 3; i * i <= n; i += 2) { while (n % i == 0) { factors.Add(i); n /= i; } } Follow on: // If n is a prime number > 2 if (n > 2) { factors.Add(n); } return factors; } Explanation: We repeatedly divide by 2, then…
Explain a bit more
check odd factors up to √n. If leftover n > 2, it's prime.
Example code
public List<int> PrimeFactors(int n) {
List<int> factors = new List<int>(); // Print the number of 2s that divide n while (n % 2 == 0) { factors.Add(2); n /= 2;
} // n must be odd at this point for (int i = 3; i * i <= n; i += 2) { while (n % i == 0) { factors.Add(i); n /= i;
}
} Follow on: // If n is a prime number > 2 if (n > 2) { factors.Add(n); }
return factors;
} Explanation: We repeatedly divide by 2, then check odd factors up to √n. If leftover n > 2, it's prime.
Real-world example (ShopNest)
In coding rounds, state complexity aloud, write a clear ShopNest-flavored example (orders, carts), then handle edge cases (empty list, null, overflow).
Say this in the interview
- Define — one clear sentence (the short answer above).
- Example — relate it to a project like ShopNest or your real work.
- Trade-off — when you would not use it.
Share this Q&A
Share preview image: https://www.toolliyo.com/images/toolliyo-logo.png