Python冲击省一蓝桥杯 DFS集锦(2)

简介: Python冲击省一蓝桥杯 DFS集锦

问题来源:“蓝桥杯”练习系统算法提高之因式分解 :


将大于1的自然数N进行因式分解,满足:

N=а1*а2*а3…аm且1<а1≤а2≤…≤аm<N

编一程序,输入N(1<N<10^9)


输入要求


N由键盘输入。


输出要求


① 第1行至第M行输出所有的M种方案(顺序不限)

② 第M+1行输出方案总数T。


image.png


代码设计思路:声明:小郑只做到统计方案个数 如何输出方案结果还没有解决


如有DL有解决方案,超级感谢!!所以下面给出如何统计方案总数的代码:


如果a=b*c  ,且c=d*e or x*y....(b<=c,d<=e,x<=y...)


那么就需要保证b<=d or b<=x,那么a就可以表示为a=b*d*e or a=b*x*y


如果e或y,又可以分解,那么重复以上步骤。


一些细节的地方:当a=b*d*e的时候,为什么是直接考虑e而不是d,也就是说d有没有可能可以由其他因子表示。说实话,这个是我找规律找出来的,你们可以自己动手试一下 比如n=24,模拟一下整个过程会,会发现d是不用考虑的


也就是一个数字的两个因子,前一个小的因子作为判断标准,是不可再分解的,后一个大的因子作为可能分解物,如果可分解,需要保证其因子中的较小者要大于我们刚刚那个判断标准,然后依次深搜下去。如果不可再分解,count不累加。


n=int(input()[2:])
count=0
def dfs(x,a):
    global count
    for i in range(2,int(x**0.5)+1):
        if x%i==0 and i>=a:#是x的因子且大于判断标准
            count+=1
            dfs(int(x/i),i)#由于for循环i从小到大遍历,那么int(x/i)作为分解对象,i作为判断标准
dfs(n,1)
print("T =%d"%count)


我是小郑 正在奔赴热爱奔赴山海! 希望大家都能拿到省一! 拿奖拿到手软!


目录
相关文章
|
2月前
|
Python
蓝桥杯练习题(一):Python组之入门训练题
这篇文章是关于蓝桥杯Python组的入门训练题,包括Fibonacci数列、圆的面积、序列求和和A+B问题的具体代码实现和样例输出。
149 0
|
1月前
|
算法 定位技术 Python
震惊!Python 图结构竟然可以这样玩?DFS&BFS 遍历技巧大公开
在 Python 编程中,图是一种重要的数据结构,而深度优先搜索(DFS)和广度优先搜索(BFS)是遍历图的两种关键算法。本文将通过定义图的数据结构、实现 DFS 和 BFS 算法,并通过具体示例展示其应用,帮助读者深入理解这两种算法。DFS 适用于寻找路径和检查图连通性,而 BFS 适用于寻找最短路径。掌握这些技巧,可以更高效地解决与图相关的复杂问题。
29 2
|
1月前
|
算法 Python
Python图论探索:从理论到实践,DFS与BFS遍历技巧让你秒变技术大牛
图论在数据结构与算法中占据重要地位,应用广泛。本文通过Python代码实现深度优先搜索(DFS)和广度优先搜索(BFS),帮助读者掌握图的遍历技巧。DFS沿路径深入搜索,BFS逐层向外扩展,两者各具优势。掌握这些技巧,为解决复杂问题打下坚实基础。
38 2
|
1月前
|
数据采集 JSON 数据安全/隐私保护
Python常用脚本集锦
Python常用脚本集锦
30 2
|
2月前
|
存储 机器学习/深度学习 算法
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
蓝桥杯Python编程练习题的集合,涵盖了从基础到提高的多个算法题目及其解答。
128 3
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
|
2月前
|
人工智能 Python
蓝桥杯练习题(四):Python组之历届试题三十题
关于蓝桥杯Python组历届试题的三十个练习题的总结,包括题目描述、输入输出格式、样例输入输出以及部分题目的解题思路和代码实现。
51 0
蓝桥杯练习题(四):Python组之历届试题三十题
|
2月前
|
存储 机器学习/深度学习 算法
蓝桥杯练习题(二):Python组之基础练习三十题
蓝桥杯Python编程练习题的集合,包含了三十个不同难度的编程题目,覆盖了基础语法、数据结构和算法等领域。
53 0
|
2月前
|
算法 Python
逆袭之路!用 Python 玩转图的 DFS 与 BFS,让数据结构难题无处遁形
在数据结构的广袤领域中,图是一种强大而复杂的结构,而深度优先搜索(DFS)和广度优先搜索(BFS)则是遍历图的两把利剑。Python 以其简洁和强大的特性,为我们提供了实现和运用这两种算法的便捷途径。
89 0
|
3月前
|
应用服务中间件 网络虚拟化 nginx
Python中采用lasso、SCAD、LARS技术分析棒球运动员薪资的案例集锦
以上是对每个问题的简要答案,由于篇幅限制,未能深入到1000字的详细解释,但希望这提供了一个良好的起点。对于这类复杂的话题,深入研究和专业指导至关重要。
40 0
|
5月前
|
算法 Python
Python图论探索:从理论到实践,DFS与BFS遍历技巧让你秒变技术大牛
【7月更文挑战第11天】图论核心在于DFS与BFS。DFS深入探索,适用于找解空间;BFS逐层扩展,擅寻最短路径。
63 8