用列举法求最大公因数(H.C.F.)交互式教学范例

用列举法求最大公因数(H.C.F.)交互式教学范例
几何画板及绘图内容加载中,请稍等……
2020-01-06 21:39
① 本范例通过交互式GeoGebra应用,直观演示了如何用列举法(Listing Factors)求两个数的最大公因数(H.C.F.),并支持中英文界面切换。② 核心数学概念是因数、公因数与最大公因数,属于算术与数论的基础内容,强调通过完整列举每个数的所有因数,再找出公共部分中的最大值。③ 作图要点:利用GeoGebra的Append、If、Intersection、Zip等命令动态生成因数列表(listFactor1、listFactor2),通过Intersection求公因数集合(listCF),再用If和Max逻辑提取最大公因数;界面包含输入框(box1、box2)、按钮(buttonSetPos、button0、buttonLang)和文本对象(textFactor1、textFactor2、textHCF等),实现参数修改、结果更新与语言切换。④ 适合小学高年级至初中阶段学习因数与最大公因数的课堂演示或学生自主探索,也可用于教师制作互动练习,帮助学生理解列举法的步骤与原理。

GeoGebra 命令及参数

  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