接上题,整除问题是小学奥数的经典题型。
349956476571能被1~20里的哪些数整除,可以直接排除2、4、6、8、10、12、14、15、16、18、20,只要看3、7、9、11、13、17、19,手算大概用了15分钟。
如果记得奥数里的整除性规律,则至少可以提高到10分钟以内。
整除性规律
2:个位是偶数
3:各位上数字之和是3的倍数
4:末两位上的数能被4整除
5:个位是0或者5
6:个位是偶数,且各位数字之和是3的倍数
7:去掉个位后的数减去个位数的2倍是7的倍数。
8:末三位能被8整除
9:各位上数字之和是9的倍数
10:个位是0
11:奇位数字之和和偶位数字之和的差是11的倍数
12:能同时被3和4整除
13:去掉个位后的数加上个位数的4倍是13的倍数。
14:能同时被2和7整除
15:能同时被3和5整除
16:末四位能被16整除
17:去掉个位后的数减去个位数的5倍是17的倍数。
18:能同时被2和9整除
19:去掉个位后的数加上个位数的2倍是19的倍数。
整除问题扩展知识
仅以被3整除为例
规律得证。
python求解
但是用python,我们只要1分钟不到。
print(349956476571 % 3)
print(349956476571 % 7)
print(349956476571 % 9)
print(349956476571 % 11)
print(349956476571 % 13)
print(349956476571 % 17)
print(349956476571 % 19)
注:还记得%运算符的含义吗?
在上一课介绍算术运算符的时候,介绍过 % 可以用来求余数。而根据整除的定义
若整数b除以非零整数a,商为整数,且余数为零, 我们就说b能被a整除。所以用 349956476571 分别 % 3,7 ……,如果结果为0,就表示能够整除。
%是python里的一种算术运算符,而顾名思义,算术运算符可以用于数字类实例之间的运算。所以下面将进一步介绍python里的数字类和算术运算符。
数字类
真实世界里,物种是可以细分的,比如猫。(网上找的图,竟然没有波斯猫)
python里的数字类,也被细分成3个子类。分别是:
整型(int)- 通常被称为是整型或整数,是正或负整数,不带小数点。
浮点型(float)- 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102= 250)
复数( (complex))- 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
复数先不用管,整型(int)和浮点型(float)不就是我们数学里说的整数和小数嘛。
在python里,如何知道一个实例是什么类呢?python提供了一个内置函数 type()
当然,对于数字类,感觉它用处不大,因为我们一眼就能够看得出来。
如上面的程序, 2 是 整型这个类的一个实例, a 是它的名字:变量名
2.5 和 2.5e2 都是 浮点型 这个类的实例,变量名分别是 b,c
但是没有关系,先记住这个内置函数,后面还会用到它。
算术运算符
python里的算术运算符不多,并且含义和数学上学的几乎一致,所以只要看下面这张表格就可以了。
注意
乘法运算符在python里是 * ,除法运算符是 /
另外,python里还补充了3个有用的运算符,分别是 %,** ,//
要充分理解这些运算符,建议自己都运行一些例子,比如 // 运算符是四舍五入取整,还是去尾法取整,自己试一下吧。
来道难点的题
如图,有100个灯泡,编号从1到100,开始都是熄灭的。
有100个人,编号从1到100。
从编号1的人开始,依次去操作灯泡,如果灯泡编号是人编号的倍数,就按一下灯泡的开关,灯泡如果是灭的,按一下开关会变亮,灯泡如果是亮的,按一下开关会熄灭。
1号人: 所有灯泡编号都是1的倍数,所以把所有灯泡开关都按一次,全部变亮。
2号人: 灯泡编号是偶数才是2的倍数,按这些灯泡开关,灯泡编号是偶数的都熄灭
3号人: ……
……
请问,最后,哪些编号的灯泡是亮着的?
微信公众号同名