Visualizing Euclid's Algorithm

Visualizing Euclid's Algorithm
Loading the math board and drawing, please wait…
2019-11-06 00:55
This example demonstrates the execution and geometric representation of Euclid's algorithm. It involves core math concepts like division, greatest common divisor, and geometric constructions. Key GeoGebra commands and objects used include Min, Polygon, Midpoint, If, and elements like a, b, A, scale, D, B, C for building geometric figures and animations. Suitable for high school mathematics education to understand the geometric meaning of the algorithm and integer properties.

GeoGebra Commands & Parameters

  1. Min(5 / a, 5 / b) → scale
  2. Polygon(C, D, B, A) → q1, c, d, b_1, a_1
  3. Midpoint(C, A) → E
  4. Midpoint(B, A) → F
  5. Min(a, b) → s1
  6. If(a > b, (floor(a / s1) * s1), 0) → ss2a
  7. If(b > a, (floor(b / s1) * s1), 0) → ss2b
  8. If(a > b, a - s2, (s2 * ns2)) → ss3a
  9. If(b > a, b - s2, (s2 * ns2)) → ss3b
  10. If(b > a, Min[a - (s2 * ns2), s2], Min[b - (s2 * ns2), s2]) → s3
  11. If(b > a, (s1 * ns1) + (s3 * ns3), (s2 * ns2)) → ss4b
  12. If(b > a, (s2 * ns2), (s1 * ns1) + (s3 * ns3)) → ss4a
  13. If(b > a, (s2 * ns2) + (s4 * ns4), (s1 * ns1) + (s3 * ns3)) → ss5a
  14. If(b > a, (s1 * ns1) + (s3 * ns3), (s2 * ns2) + (s4 * ns4)) → ss5b
  15. If(b > a, (s2 * ns2) + (s4 * ns4), (s1 * ns1) + (s3 * ns3) + (s5 * ns5)) → ss6a
  16. If(b > a, (s1 * ns1) + (s3 * ns3) + (s5 * ns5), (s2 * ns2) + (s4 * ns4)) → ss6b
  17. If(b ≥ a, Sequence[Polygon[((m * scale), (ss4b * scale)), ((m * scale) + (s4 * scale), (ss4b * scale)), 4], m, ss4a, (s4 * (ns4 - 1)) + ss4a, s4], Sequence[Polygon[((ss4a * scale), (m * scale)), ((ss4a * scale) + (s4 * scale), (m * scale)), 4], m, ss4b, (s4 * (ns4 - 1)) + ss4b, s4]) → sequence4
  18. If(b ≥ a, Sequence[Polygon[((ss5a * scale), (m * scale)), ((ss5a * scale) + (s5 * scale), (m * scale)), 4], m, ss5b, (s5 * (ns5 - 1)) + ss5b, s5], Sequence[Polygon[((m * scale), (ss5b * scale)), ((m * scale) + (s5 * scale), (ss5b * scale)), 4], m, ss5a, (s5 * (ns5 - 1)) + ss5a, s5]) → sequence5
  19. If(b ≥ a, Sequence[Polygon[(0, (m * scale)), ((s1 * scale), (m * scale)), 4], m, 0, (s1 * (ns1 - 1)), s1], Sequence[Polygon[((m * scale) + (s1 * scale), 0), ((m * scale) + (s1 * scale), (s1 * scale)), 4], m, 0, (s1 * (ns1 - 1)), s1]) → sequence1
  20. If(b ≥ a, Sequence[Polygon[((m * scale), (ss2b * scale)), ((m * scale) + (s2 * scale), (ss2b * scale)), 4], m, 0, (s2 * (ns2 - 1)), s2], Sequence[Polygon[((ss2a * scale), (m * scale)), ((ss2a * scale) + (s2 * scale), (m * scale)), 4], m, 0, (s2 * (ns2 - 1)), s2]) → sequence2
  21. If(b ≥ a, Sequence[Polygon[((ss3a * scale), (m * scale)), ((ss3a * scale) + (s3 * scale), (m * scale)), 4], m, ss3b, (s3 * (ns3 - 1)) + ss3b, s3], Sequence[Polygon[((m * scale), (ss3b * scale)), ((m * scale) + (s3 * scale), (ss3b * scale)), 4], m, ss3a, (s3 * (ns3 - 1)) + ss3a, s3]) → sequence3
  22. If(b > a, (s2 * ns2) + (s4 * ns4) + (s6 * ns6), (s1 * ns1) + (s3 * ns3) + (s5 * ns5)) → ss7a
  23. If(b > a, (s1 * ns1) + (s3 * ns3) + (s5 * ns5), (s2 * ns2) + (s4 * ns4) + (s6 * ns6)) → ss7b
  24. If(b ≥ a, Sequence[Polygon[((ss7a * scale), (m * scale)), ((ss7a * scale) + (s7 * scale), (m * scale)), 4], m, ss7b, (s7 * (ns7 - 1)) + ss7b, s7], Sequence[Polygon[((m * scale), (ss7b * scale)), ((m * scale) + (s7 * scale), (ss7b * scale)), 4], m, ss7a, (s7 * (ns7 - 1)) + ss7a, s7]) → sequence7
  25. If(b ≥ a, Sequence[Polygon[((m * scale), (ss6b * scale)), ((m * scale) + (s6 * scale), (ss6b * scale)), 4], m, ss6a, (s6 * (ns6 - 1)) + ss6a, s6], Sequence[Polygon[((ss6a * scale), (m * scale)), ((ss6a * scale) + (s6 * scale), (m * scale)), 4], m, ss6b, (s6 * (ns6 - 1)) + ss6b, s6]) → sequence6
  26. If(b > a, (s2 * ns2) + (s4 * ns4) + (s6 * ns6), (s1 * ns1) + (s3 * ns3) + (s5 * ns5) + (s7 * ns7)) → ss8a
  27. If(b > a, (s1 * ns1) + (s3 * ns3) + (s5 * ns5) + (s7 * ns7), (s2 * ns2) + (s4 * ns4) + (s6 * ns6)) → ss8b
  28. If(b ≥ a, Sequence[Polygon[((m * scale), (ss8b * scale)), ((m * scale) + (s8 * scale), (ss8b * scale)), 4], m, ss8a, (s8 * (ns8 - 1)) + ss8a, s8], Sequence[Polygon[((ss8a * scale), (m * scale)), ((ss8a * scale) + (s8 * scale), (m * scale)), 4], m, ss8b, (s8 * (ns8 - 1)) + ss8b, s8]) → sequence8
  29. If(b > a, (s2 * ns2) + (s4 * ns4) + (s6 * ns6) + (s8 * ns8), (s1 * ns1) + (s3 * ns3) + (s5 * ns5) + (s7 * ns7)) → ss9a
  30. If(b > a, (s1 * ns1) + (s3 * ns3) + (s5 * ns5) + (s7 * ns7), (s2 * ns2) + (s4 * ns4) + (s6 * ns6) + (s8 * ns8)) → ss9b
  31. If(b ≥ a, Sequence[Polygon[((ss9a * scale), (m * scale)), ((ss9a * scale) + (s7 * scale), (m * scale)), 4], m, ss9b, (s9 * (ns9 - 1)) + ss9b, s9], Sequence[Polygon[((m * scale), (ss9b * scale)), ((m * scale) + (s9 * scale), (ss9b * scale)), 4], m, ss9a, (s9 * (ns9 - 1)) + ss9a, s9]) → sequence9