这个其实很简单,思路是通过列表推导式生成三个2位数的随机数,再通过max内建函数取最大数
创新互联公司主营同德网站建设的网络公司,主营网站建设方案,成都app软件开发,同德h5小程序开发搭建,同德网站营销推广欢迎同德等地区企业咨询
上代码了
max( [random.randint(10, 99) for i in range(3)])
答案:a是b的因子python3语言怎么表示:if b%a==0。
#例子,找出ask_num的因子。
ask_num=6
lista=[j for j in range(1,ask_num+1)]
for j in lista:#遍历lista
if 6%j==0:#缩进4格,找6的因子
print(f"{j}是6的因子")#缩进8格,输出结果
'''
1是6的因子
2是6的因子
3是6的因子
6是6的因子
'''
def fun(n: int):
L = [ ]
for i in range(2, n // 2 + 1):
if not n % i:
L.append(i)
return L
print(fun(256))
1. 首先解决你的语法问题
i和j是局部变量,只在当前for循环的语句内有效,所以,你的if j==i这一句就访问了一个失效的变量j,同样你的递归调用一样访问了j,因此我建议你在外层循环上面加上一句i = j = 2(反正赋初值不要用0就行,因为你的递归调用k/j可能造成除0异常)
2. 算法问题
你采用了递归求解,k==1作为递归退出条件本身是正确的,而作为参数合法性判断则显得有些不足,我建议应该修改为k = 1。
另外,你的算法会存在一个不影响正常功能的小缺陷,那就是可能重复打印质因子,比如算100的质因子,就会重复打印出两个2和两个5,因为先算出100的质因子2以后,接着算100/2的质因子,而50同样存在质因子2,整个过程就变成了
kj(100)
kj(50)
kj(25)
kj(5)
因此结果是
2
2
5
5
关于这一点,你可以忽略不计,或者通过调整代码自己进行规避
希望我的回答能够对你有所帮助