解题思路:

因为是分解质因数,先把小于等于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.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论