第18711题 程序题
Scratch编程:递归实现辗转相除法求两个随机正整数的最大公约数

题目说明

本题为Scratch等级考试四级编程题,要求使用辗转相除法计算两个正整数的最大公约数。

相关定义

  • 约数:若整数a除以非零整数b的余数为0,则称b是a的约数,例如4的约数有1、2、4,6的约数有1、2、3、6。
  • 最大公约数:两个正整数的公共约数中最大的那个数,例如4和6的最大公约数为2。

辗转相除法步骤(针对正整数a > b)

  1. 若a除以b的余数m等于0,则b即为两数的最大公约数。
  2. 若余数m不等于0,则将a赋值为b,b赋值为m,重复执行步骤1。

准备工作

  1. 保留默认小猫角色与初始位置;
  2. 使用默认白色背景。

功能实现要求

  1. 定义全局变量ab,分别赋值为1~99之间的随机整数;
  2. 采用递归法实现上述辗转相除法逻辑,计算a和b的最大公约数;
  3. 小猫最终说出计算结果,输出格式为"最大公约数为X",其中X为计算得到的最大公约数。

样例效果

样例效果