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

第十课认识约数

课堂学习: 

情景引入:

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

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

在整数除法中,如果商是整数没有余数,我们就说被除数是除数的倍数,除数是被除数的因数(约数)。 例如,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以内,哪个整数有最多的因数呢? 这个整数有多少个因数呢? 最好使用程序来进行判断哦

相关文章:

  • Go多服务项目结构优化:为何每个服务单独设置internal目录?
  • 猿人学第十七题—天杀的http2.0
  • 在 Vue 3 中实现刮刮乐抽奖
  • 牛客练习赛138
  • PTA:jmu-ds-拓扑排序
  • JDBC链接数据库
  • 程序代码篇---Python视频流
  • OrangePi Zero 3学习笔记(Android篇)5 - usbutils编译(更新lsusb)
  • DVWA靶场Cryptography模块medium不看原码做法
  • kubectl top 查询pod连接数
  • Go基于plugin的热更新初体验
  • 【赵渝强老师】TiDB SQL层的工作机制
  • 数据分析2
  • 物联网、数字化工厂与智能智慧技术未来发展方向
  • 光的本质(以暗物质维度粒子为介质的能量传导)
  • Kubernetes应用发布方式完整流程指南
  • Java代理
  • ERP学习(二):用友软件产品之系统管理
  • 网络原理(Java)
  • 文生视频模型速读:LTX-Video
  • 中美会谈前都发生了什么?美方为何坐不住了?
  • 宣布停火后,印控克什米尔地区再次传出爆炸声
  • 红场阅兵即将开始!中国人民解放军仪仗队亮相
  • 习近平离京赴莫斯科对俄罗斯进行国事访问并出席纪念苏联伟大卫国战争胜利80周年庆典
  • 个人住房公积金贷款利率下调,100万元30年期贷款总利息将减少近5万元
  • 上海市委政法委召开会议传达学习总书记重要讲话精神