当前位置: 首页 > ai >正文

第十课认识约数

课堂学习: 

情景引入:

今天我们来认识一下数学中的约数关系,上节课我们了解完倍数之后就已经对约数有了基本的概念!

我们按照是否有余数,可以把他们分成两类

在整数除法中,如果商是整数没有余数,我们就说被除数是除数的倍数,除数是被除数的因数(约数)。 例如,12÷2=6,我们就说12是2的倍数,2是12的约数。 说一说第一类的每个算式中,谁是谁的约数?谁是谁的倍数?

做一做

下面的4组数中,谁是谁的约数?谁是谁的倍数?

约数的特征

18的因数有:1、2、3、6、9、18 一共6个

2的倍数有:2、4、6、...、12、14、16、...

5的倍数有:5、10、15、... 所以一个整数的因数是有限的,一个整数的倍数是无限多的

同学们可以找到24 的所有约数嘛?

 绘制约数

我们希望向右画,所以开始可以让画笔向右转90° 然后转到起始位置(-300,0) 之后可以设置宽200,长100,初始颜色白色15 

int main(){pen.rt(90).moveTo(-300,0);int chang,kuan,yanse;kuan=200,chang=100,yanse=15;return 0;
}
  •  之后我们就可以用for循环来绘制2-9 一共8个长方形,所以编号可以从2开始到9结束
  • 绘制时需要将质数编号的长方形更改成红色,所以需要在编号是质数时更改颜色变量的值,不是质数的时候要把颜色变量改回白色
  • 需要注意我们绘制的时候需要先绘制实心长方形再绘制编号,否则长方形就会覆盖编号数字
int main(){pen.rt(90).moveTo(-300,0);int chang,kuan,yanse;kuan=200,chang=100,yanse=15;for(int i=2;i<10;i++){if(i==2||i==3||i==5||i==7){yanse=1;}else{yanse=15;}pen.rr(kuan,chang,yanse);pen.text(i,0);pen.up().fd(100).down();}return 0;
}

 找因数

  • 知道因数知识之后,我们可以来使用绘图找一下整数的所有因数
  • 查找之前我们来学习c++中比较重要的一个算数运算类型:取余 %
  • 取余操作,按字面意思来说就是获取到表达式的余数,即: 20%3 就是20÷3=6...2 的余数,即2 20%4 就是20÷4=5...0的余数,即0
  • 余数定义
  • 二元运算符 % 生成第一个操作数除以第二个操作数(在通常的算术转换之后)的余数。
  • 余数的符号定义如下: 如果商 a/b 在结果类型中可表示,则 (a/b)*b + a%b == a. 如果第二个操作数为零,则行为未定义。
  • 注意:余数运算符不适用于浮点类型,库函数 fmod 提供了该功能 

课堂练习 

  • 知道取余运算之后我们就可以使用因数的定义来找到一个整数的所有因数了
  • 在商是整数没有余数的情况下,除数就是被除数的因数,所以我们可以使用取余运算来判断一个数是否是另一个整数的因数,
  • 例如: 12 % 4 = 0 取余运算结果是0,则表示4是12的一个因数 12 % 5 = 2 取余运算结果是2,则表示5不是12的一个因数

现在我们需要找一个整数的所有因数,那么就可以使用for 循环结构进行处理 从1 开始 到这个整数结束,如果取余运算结果是0,就绘制出这个因数

int a;
cin>>a;
for(int i=1;i<=a;i++){
if(a%i == 0){
pen.text(i);
pen.fd(100);
}
}

 同学们可以使用画图实现找因数的任务

  1. 输入一个整数(小于50)
  2. 在当前位置画出这个整数
  3. 在距离100的下一行使用红色画出这个整数的所有因数,每两个因数间隔100距离
  4. 最后隐藏画笔
输入一个整数
int a;cin>>a;
pen.text(a);即可
第二行的因数需要向右绘制,所以我们可以先让画笔转向右边方向,如果其实位置是原点,可以直接让画笔移动到(0,-100)位置
int main(){int a;cin>>a;pen.rt(90).text(a).moveTo(0,-100);return 0;
}在距离100的下一行使用红色画出这个整数的所有因数,每两个因数间隔100距离
最后隐藏画笔

 


int main(){int a;cin>>a;pen.rt(90).text(a).moveTo(0,-100);for(int i=1;i<=a;i++){if(a%i == 0){pen.text(i,1);pen.up().fd(100).down();}} pen.hide();return 0;
}

课后作业 

同学们课后可以尝试找一下30以内,哪个整数有最多的因数呢? 这个整数有多少个因数呢? 最好使用程序来进行判断哦

http://www.xdnf.cn/news/5214.html

相关文章:

  • 蓝牙身份证阅读器使用Uniapp调用二次开发demo
  • 逆向学习笔记(代码)
  • Linux `uptime` 指令详解与系统监控指南
  • 计算机体系结构一些笔记
  • C++中的继承与多态
  • 【Redis进阶】持久化
  • SpringMVC面试内容
  • 【无标题】I/O复用(epoll)三者区别▲
  • JS DOM操作与事件处理从入门到实践
  • 无线网络设备中AP和AC是什么?有什么区别?
  • 从零开始实现YOLOv8示例
  • 线性表-顺序表(Sequential List)
  • 【vue】vuex实现组件间数据共享 vuex模块化编码 网络请求
  • GRU网络详解
  • 解决使用宝塔Linux部署前后端分离项目遇到的问题
  • 第三章 Freertos智能小车遥控控制
  • 【Web】LACTF 2025 wp
  • 虚拟机风格
  • OpenLayers根据任意数量控制点绘制贝塞尔曲线
  • 关于甲骨文(oracle cloud)丢失MFA的解决方案
  • vim的配置
  • C++(6):逻辑运算符
  • AI 驱动的开发工具
  • 中国古代史1
  • 【ML-Agents】ML-Agents示例项目导入unity报错解决
  • 当冲压焊接遇上Canopen到Profinet协议转换网关
  • 4.分布式锁
  • C++进阶--AVL树的实现续
  • HC-SR04超声波测距传感器
  • Doris和Clickhouse对比