解题思路:
因为是分解质因数,先把小于等于b的所有质数找出来存到nums中用来备用,这样直接查表就可以了;观察结果,如果a -b中的数i本身就是质数不用分解直接3=3这种的(i在nums中 因为质数的定义是只能分解为1和其本身两个因数),如果不在就是非质数,循环判断,从nums第一个2开始整除看看,除得了就记录下来,直到i为1,答案每次存放在ans里;最后就是一个输出格式需要注意
注意事项:
1 是循环判断i%x ,比如4=2*2 不是if
2 输出格式可以用join 用*把分解的因数拼接起来,这也是以后做题的一个注意点,有写输出完全是有规律的,不需要先考虑,最后拼接就好
3 join函数里面可以用列表表达式,这个方法要学习一下]
参考代码:
a,b=map(int,input().split())
nums=[2]
for i in range(3,b+1):
flag=True
for j in range(2,int(i**0.5)+1):
if i%j==0:
flag=False
break;
if flag==True:
nums.append(i)
for i in range(a,b+1):
if i in nums:
print(str(i)+"="+str(i))
else:
temp=i
ans=[]
for x in nums:
while i % x==0 and i!=1:
ans.append(x)
i = i//x
print(str(temp)+"=",end='')
print("*".join([str(x) for x in ans]))
0.0分
1 人评分