primeFactorization function
- int n
Returns the prime factorization of n as a list of prime factors in ascending order.
Uses trial division optimized with 2, 3, and then 6k ± 1 candidates.
Returns an empty list if n is less than or equal to 1.
Example: primeFactorization(12) returns [2, 2, 3].
Implementation
List<int> primeFactorization(int n) {
final factors = <int>[];
if (n <= 1) return factors;
while (n % 2 == 0) {
factors.add(2);
n ~/= 2;
}
while (n % 3 == 0) {
factors.add(3);
n ~/= 3;
}
for (int i = 5; i * i <= n; i += 6) {
while (n % i == 0) {
factors.add(i);
n ~/= i;
}
while (n % (i + 2) == 0) {
factors.add(i + 2);
n ~/= (i + 2);
}
}
if (n > 3) {
factors.add(n);
}
return factors;
}