Visual Factorization Demo

Visual Factorization Demo
Loading the math board and drawing, please wait…
2016-01-19 08:10
In collections Division Concepts
This example allows users to input an integer and visually explore all possible pairs of divisors that multiply to produce the given number based on its prime factorization. Key math concepts include factorization, divisors, and prime factors. GeoGebra commands used are Factors, Join, Sequence, Element, Textfield, Min, Corner, Max, If, and Text. Suitable for middle school and above, helping students understand the geometric representation and application of factorization.

GeoGebra Commands & Parameters

  1. Factors(n) → fm
  2. Join(Sequence[Sequence[Element[Element[fm, i], 1], j, 1, Element[Element[fm, i], 2]], i, 1, Length[fm]]) → factors
  3. Sequence(If[Element[bools, i] ∧ (Length[factors] ≥ i), Element[factors, i], 1], i, 1, Length[bools]) → list1
  4. Sequence((floor(i / prows) * d, Mod[i, prows] * d) + ts * Vector[(floor(i / prows) * d, Mod[i, prows] * d), (floor(i / rows) * d, Mod[i, rows]) * d], i, 0, n - 1) → points
  5. Element(points, n) → MX
  6. Textfield(n) → inputBox1
  7. Sequence(If[(¬Element[bools, i]) ∧ (Length[factors] ≥ i), Element[factors, i], 1], i, 1, Length[bools]) → list2
  8. Min(Sequence[If[Element[bools, i], i, 10000], i, 1, Length[bools]]) → minTrue
  9. Min(Sequence[If[¬Element[bools, i], i, 10000], i, 1, Length[bools]]) → minFalse
  10. Sequence(If[(i ≤ Length[factors]) ∧ Element[bools, i], If[i > minTrue, "\times", ""] + (Element[list1, i]), ""], i, 1, Length[bools]) → rt
  11. Sequence(If[(i ≤ Length[factors]) ∧ (¬Element[bools, i]), If[i > minFalse, "\times", ""] + (Element[list2, i]), ""], i, 1, Length[bools]) → ct
  12. Corner(5) → GV
  13. Max(Sequence[If[¬Element[bools, i], i, 0], i, 1, Min[Length[bools], Length[factors]]]) → maxFalse
  14. Max(Sequence[If[Element[bools, i], i, 0], i, 1, Min[Length[bools], Length[factors]]]) → maxTrue
  15. Sequence(Circle[Element[points, i], 0.3 * d], i, 1, n) → list3
  16. If(MXratio > ratio, innerW / ratio, innerH) → finH
  17. If(MXratio > ratio, innerW, innerH * ratio) → finW
  18. Text(If[rows ≟ 1, "1", Element[rt, 1] + (Element[rt, 2]) + (Element[rt, 3]) + (Element[rt, 4]) + (Element[rt, 5]) + (Element[rt, 6]) + (Element[rt, 7]) + (If[minTrue ≟ maxTrue, "", "=" + rows])], RT, false, true) → text1
  19. Text(If[cols ≟ 1, "1", Element[ct, 1] + (Element[ct, 2]) + (Element[ct, 3]) + (Element[ct, 4]) + (Element[ct, 5]) + (Element[ct, 6]) + (Element[ct, 7]) + (If[minFalse ≟ maxFalse, "", "=" + cols])], CT, false, true) → text2
  20. Sequence(If[Element[bools, i], "darkgreen", "red"], i, 1, Length[bools]) → colors