Finding HCF by Listing Factors

Finding HCF by Listing Factors
Loading the math board and drawing, please wait…
2020-08-19 17:40
① This example demonstrates the complete process of finding the highest common factor (HCF) by listing all factors of two integers, identifying their common factors, and selecting the greatest one. ② Core mathematical concepts include highest common factor, factors, integer division, and set intersection of factor lists. ③ Construction highlights: GeoGebra commands Append, If, Intersection, Zip together with objects box1, box2, listNum, listFactor1, listFactor2, listCF, buttonSetPos, button0, buttonLang, and slider are used to dynamically generate factor lists, apply conditional filtering, compute the intersection, and provide interactive highlighting. ④ Suitable for upper‑primary to lower‑secondary mathematics instruction, as well as for self‑study demonstrations and teaching aids.

GeoGebra Commands & Parameters

  1. Append("", Sequence[Text[i], i, 1, 100]) → listNum
  2. If(SelectedIndex[listNum2] > 1, SelectedIndex[listNum2] - 1) → n2
  3. If(Defined[n2], Reverse[KeepIf[IsInteger[k], k, Sequence[n2 / i, i, 1, n2]]], {0}) → listFactor2
  4. If(SelectedIndex[listNum1] > 1, SelectedIndex[listNum1] - 1) → n1
  5. If(Defined[n1], Reverse[KeepIf[IsInteger[k], k, Sequence[n1 / i, i, 1, n1]]], {0}) → listFactor1
  6. Intersection(listFactor1, listFactor2) → listCF
  7. If(listFactor1 ≟ {0} ∨ t1 ≟ 0, {0}, First[listFactor1, t1]) → listFactor1Partial
  8. If(Length[listFactor1] ≤ 1, 1, Length[listFactor1]) → t1max
  9. If(Length[listFactor2] ≤ 1, 1, Length[listFactor2]) → t2max
  10. Zip(If[IndexOf[k, listCF] ≥ 1 ∧ box1, "\red{", ""] + (Text[k]) + (If[IndexOf[k, listCF] ≥ 1 ∧ box1, "}", ""]) + "\,,\,", k, listFactor1Partial) → listFactorText1
  11. If(listFactor2 ≟ {0} ∨ t2 ≟ 0, {0}, First[listFactor2, t2]) → listFactor2Partial
  12. Zip(If[IndexOf[k, listCF] ≥ 1 ∧ box1, "\red{", ""] + (Text[k]) + (If[IndexOf[k, listCF] ≥ 1 ∧ box1, "}", ""]) + "\,,\,", k, listFactor2Partial) → listFactorText2
  13. If(listFactorText1 ≟ {}, " ", Sum[listFactorText1] + " ") → textSum1
  14. If(listFactorText2 ≟ {}, " ", Sum[listFactorText2] + " ") → textSum2