Single-Player Factor Game: Constructing Geometry from Divisors

Single-Player Factor Game: Constructing Geometry from Divisors
Loading the math board and drawing, please wait…
2021-01-12 00:31
This GeoGebra example demonstrates a single-player “factor game” generation process: it randomly selects elements from integer divisor sets, then maps those selections into planar geometric objects (polygons, lines, and points), producing a structured visual outcome that can be explored repeatedly. The core math ideas are integer factorization (divisor lists, factor-related filtering, deduplication), set and list operations (removing invalid/undefined values, flattening and unique selection), random experiments (shuffling), and geometric construction in 2D (using intersections and lines to shape the configuration). Construction follows the provided GeoGebra command set: Polygon to build polygonal regions; DivisorsList and Factors to generate and compute divisor/factor candidates; If to apply conditional filtering; Remove and RemoveUndefined to discard invalid items; Sum to aggregate factor-derived parameters; Flatten and Unique to normalize and deduplicate lists; Join and Shuffle to combine and randomize candidate sets; Intersect to compute intersection points; Line to draw guiding/partition lines; and Point to place key vertices/markers. It is designed for learners from late secondary school to early university, especially suitable for lessons connecting number theory (divisors) with geometric visualization and interactive construction.

GeoGebra Commands & Parameters

  1. Polygon(A, B, 4) → poly1, f, g, h, i, C, D
  2. DivisorsList(N) → ND
  3. Factors(N) →
  4. Remove(ND, {1, N}) → ND1
  5. If(IsInRegion[P26, poly1], 26, 0) → m26
  6. If(x(P26) < -5 ∧ y(P26) > 0, 26) → M26
  7. If(IsInRegion[P28, poly1], 28, 0) → m28
  8. If(x(P28) < -5 ∧ y(P28) > 0, 28) → M28
  9. If(IsInRegion[P29, poly1], 29, 0) → m29
  10. If(x(P29) < -5 ∧ y(P29) > 0, 29) → M29
  11. If(IsInRegion[P30, poly1], 30, 0) → m30
  12. If(x(P30) < -5 ∧ y(P30) > 0, 30) → M30
  13. If(IsInRegion[P31, poly1], 31, 0) → m31
  14. If(x(P31) < -5 ∧ y(P31) > 0, 31) → M31
  15. If(IsInRegion[P8, poly1], 8, 0) → m8
  16. If(x(P8) < -5 ∧ y(P8) > 0, 8) → M8
  17. If(IsInRegion[P32, poly1], 32, 0) → m32
  18. If(x(P32) < -5 ∧ y(P32) > 0, 32) → M32
  19. If(IsInRegion[P33, poly1], 33, 0) → m33
  20. If(x(P33) < -5 ∧ y(P33) > 0, 33) → M33
  21. If(IsInRegion[P9, poly1], 9, 0) → m9
  22. If(x(P9) < -5 ∧ y(P9) > 0, 9) → M9
  23. If(IsInRegion[P10, poly1], 10, 0) → m10
  24. If(x(P10) < -5 ∧ y(P10) > 0, 10) → M10
  25. If(IsInRegion[P34, poly1], 34, 0) → m34
  26. If(x(P34) < -5 ∧ y(P34) > 0, 34) → M34
  27. If(IsInRegion[P11, poly1], 11, 0) → m11
  28. If(x(P11) < -5 ∧ y(P11) > 0, 11) → M11
  29. If(IsInRegion[P35, poly1], 35, 0) → m35
  30. If(x(P35) < -5 ∧ y(P35) > 0, 35) → M35
  31. If(IsInRegion[P12, poly1], 12, 0) → m12
  32. If(x(P12) < -5 ∧ y(P12) > 0, 12) → M12
  33. If(IsInRegion[P36, poly1], 36, 0) → m36
  34. If(x(P36) < -5 ∧ y(P36) > 0, 36) → M36
  35. If(IsInRegion[P13, poly1], 13, 0) → m13
  36. If(x(P13) < -5 ∧ y(P13) > 0, 13) → M13
  37. If(IsInRegion[P14, poly1], 14, 0) → m14
  38. If(x(P14) < -5 ∧ y(P14) > 0, 14) → M14
  39. If(IsInRegion[P15, poly1], 15, 0) → m15
  40. If(x(P15) < -5 ∧ y(P15) > 0, 15) → M15
  41. If(IsInRegion[P16, poly1], 16, 0) → m16
  42. If(x(P16) < -5 ∧ y(P16) > 0, 16) → M16
  43. If(IsInRegion[P17, poly1], 17, 0) → m17
  44. If(x(P17) < -5 ∧ y(P17) > 0, 17) → M17
  45. If(IsInRegion[P19, poly1], 19, 0) → m19
  46. If(x(P19) < -5 ∧ y(P19) > 0, 19) → M19
  47. If(IsInRegion[P20, poly1], 20, 0) → m20
  48. If(x(P20) < -5 ∧ y(P20) > 0, 20) → M20
  49. If(IsInRegion[P21, poly1], 21, 0) → m21
  50. If(x(P21) < -5 ∧ y(P21) > 0, 21) → M21
  51. If(IsInRegion[P22, poly1], 22, 0) → m22
  52. If(x(P22) < -5 ∧ y(P22) > 0, 22) → M22
  53. If(IsInRegion[P23, poly1], 23, 0) → m23
  54. If(x(P23) < -5 ∧ y(P23) > 0, 23) → M23
  55. If(IsInRegion[P24, poly1], 24, 0) → m24
  56. If(x(P24) < -5 ∧ y(P24) > 0, 24) → M24
  57. If(IsInRegion[P25, poly1], 25, 0) → m25
  58. If(x(P25) < -5 ∧ y(P25) > 0, 25) → M25
  59. If(IsInRegion[P18, poly1], 18, 0) → m18
  60. If(x(P18) < -5 ∧ y(P18) > 0, 18) → M18
  61. If(IsInRegion[P27, poly1], 27, 0) → m27
  62. If(x(P27) < -5 ∧ y(P27) > 0, 27) → M27
  63. If(IsInRegion[P5, poly1], 5, 0) → m5
  64. If(x(P5) < -5 ∧ y(P5) > 0, 5) → M5
  65. If(IsInRegion[P4, poly1], 4, 0) → m4
  66. If(x(P4) < -5 ∧ y(P4) > 0, 4) → M4
  67. If(IsInRegion[P2, poly1], 2, 0) → m2
  68. If(x(P2) < -5 ∧ y(P2) > 0, 2) → M2
  69. If(IsInRegion[P7, poly1], 7, 0) → m7
  70. If(x(P7) < -5 ∧ y(P7) > 0, 7) → M7
  71. If(IsInRegion[P6, poly1], 6, 0) → m6
  72. If(x(P6) < -5 ∧ y(P6) > 0, 6) → M6
  73. If(IsInRegion[P3, poly1], 3, 0) → m3
  74. Sum(Lm) → m
  75. DivisorsList(m) → MD
  76. Factors(m) →
  77. Remove(MD, {1, m}) → MD1
  78. If(x(P3) < -5 ∧ y(P3) > 0, 3) → M3
  79. RemoveUndefined(MF) → MF1
  80. Remove(MF1, ND1) → Mistake
  81. Flatten(Mtotal) → M1total
  82. Unique(M1total) → M2total
  83. Flatten(NXtotal) → NX1total
  84. Unique(NX1total) → NX2total
  85. Join({M2total, NX2total}) → Join1
  86. Shuffle(List2) → List2A, {24, 20, 11, 32, 15, 30, 17, 14, 13, 28}
  87. Join({List1, List2A, List3}) → List4
  88. Remove(List4, Join1) → LL2
  89. Remove(ND1, Join1) → ND3
  90. Remove(MD1, Join1) → MD3
  91. Polygon(P, Q, R, S) → q1, p_1, q_1, r_1, s_1
  92. Polygon(G, H, 4) → poly2, j, k, l, t, T, U
  93. Sum(M2total) → ScoreM
  94. Unique(NT) → NT1
  95. Sum(NX2total) → ScoreN
  96. Intersect(r_1, s_1) → C_1
  97. Remove(ND1, MF1) → missing
  98. Remove(ND3, MF1) → Missing
  99. Sum(Mistake) → MistakeN
  100. Remove(MF1, Mistake) → MF2
  101. Line(M, O) → p
  102. Point(p) → A_1
  103. Polygon(Z, A_1, G_1, I_1) → q2, z_1, a_1, g_1, i_1
  104. Point(p) → M_1
  105. Polygon(L_1, M_1, N_1, O_1) → q3, l_1, m_1, n_1, o_1
  106. Polygon(P_1, Q_1, R_1, S_1) → q4, q, r, s, f_1

AI Drawing Prompt Reference

Create a polygonal region generated by random integer factors from 1 to 40. Start by randomly selecting these factors, then construct polygons, lines, and points based on these factors. Next, filter out factors that meet specific conditions, such as x-coordinate less than -5 and y-coordinate greater than 0, and mark them as special points. Finally, generate a graphic that includes the polygons, lines, and special points based on their relationships.
The prompt above was compiled from the original drawing commands and is for reference only.