蓝桥填空2

今天接着做一期蓝桥的填空题吧

先来看看我准备的暴力写法吧,太傻吧了。

n=2021041820210418
b=set()
for i in range(1,n+1):
    for j in range(1,n+1):
        for k in range(1,n+1):
            if i*j*k==n:
                b.add((i,j,k))
print(len(b))

这要不超时,天理难容....看了题解以后,不🈲感叹我是个傻子...

n=2021041820210418
b=set()
a=[]#先建立一个空列表,把有可能是i,j,k的元素放入,这样减轻了很多时间空间,也不会超时了
for l in range(1,int(n**0.5)+1):
    if n%l==0:
        a.append(l)
        a.append(n/l)
a=set(a)
a=list(a)
for i in a:
    for j in a:
        for k in a:
            if i*j*k==n:
                b.add((i,j,k))
print(len(b))

嗯,本来是想都做填空题的,我发现后面的算法没学到,根本不会....就再加一道编程吧

这个题python的优势就在于time模块,贼好用,所以给各位哥哥姐姐一点意见,参加蓝桥杯的话,一定要把python的各个模块给过一遍,会有意外惊喜的哦

import time
a=eval(input())
t=int(a/1000)
p=time.gmtime(t)
h=str(p[3]) if p[3]>=10 else "0"+str(p[3])
m=str(p[4]) if p[4]>=10 else "0"+str(p[4])
s=str(p[5]) if p[5]>=10 else "0"+str(p[5])
print(f"{h}:{m}:{s}")

 今天就到这里吧,我去学算法啦!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值