Odin SolutionsOdin Solutions

🕰️

Factors

Week 12, 2026

All Solutions

Build dictionary and print the result | greenya | Odin Solutions

package main import "core:fmt" main :: proc () { // [num of factors] => {list of numbers}; [0] is not used factors := make([dynamic][dynamic] int) for n in 1..=100_000 { // 1 has one factor, any other has two factors (1 and itself) num_of_factors := n == 1 ? 1 : 2 for j in 2..=n/2 do if n%j == 0 do num_of_factors += 1 if num_of_factors >= len(factors) do resize(&factors, num_of_factors + 1) append(&factors[num_of_factors], n) } #reverse for list, num_of_factors in factors { if len(list) == 0 do continue for n in list do fmt.println(n, ":", num_of_factors) fmt.println() } }