【思特奇杯•云上蓝桥---算法训练营】第1周作业 蓝桥杯真题-阶乘约数(Python)

一,问题描述

定义阶乘 n! = 1 × 2 × 3 × ··· × n 。 请问 100! ( 100 的阶乘)有多少个约数。

补充:约数定义:数,又称因数。整数a除以整数b(b≠0) 除得的商正好是整数而没有余数,我们就说a能被b整除,或b能整除a。a称为b的倍数,b称为a的约数。比如6的约数是1,2,3,6,12的约数是1,2,3,4,6,12。

二,答案提交

这是一道结果填空的题,你只需要算出结果后提交即可。 本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无 法得分。

三,答案代码 

#作业二 阶乘约数
from math import factorial
a=factorial(100)
print(a)
b=[]
for i in range(1,a+1):
    if a%i == 0:
        b.append(i)
print(len(b))

结果:39001250856960000 

四,题目解读 

题目很好理解,先求出100的阶乘是多少,在计算它的约个数,关键是如何统计约数的个数

五,代码解读

from math import factorial        #factorial是阶乘的意思,
a=factorial(100)
print(a)                          #用math库里的factorial函数求100阶乘
b=[]                      #创建空列表,填充约数,再用len()函数求个数
for i in range(1,a+1):     
    if a%i == 0:          #判断是否是约数      
        b.append(i)       #填充约数
print(len(b))             #求约数个数

如果阶乘的求法不太理解,可以看看我的另一篇博文,讲的如何求N的阶乘

链接:(12条消息) Python超简单4行代码实现N的阶乘。_TUSTer_的博客-CSDN博客

结语:我的解法比csdn上部分解法简单好懂了许多,如果能够帮助你,还是老规矩,希望给一个一键三连啊!由于手机端代码解读显示不完全,已经把这部分写道评论区了。

其他解法链接:(11条消息) [蓝桥杯]阶乘约数(Python实现)_d_l_w_d_l_w的博客-CSDN博客

今日一笑: 熊孩子

昨天因为一件事骂儿子,说你妈妈是猪,你也是头猪。儿子却反过来说我:爸爸你怎么这么衰,娶了一头猪,还生了一只猪!你说你这熊孩子,这是不是找打。

上一篇:2021-11-07


下一篇:Java求阶乘和