您的位置:首页 > 编程语言 > Python开发

Python语言实现第一个程序,简单的递归算法——整数因子分解问题

2019-05-16 17:41 423 查看

处女博客!

最近正在自学Python,刚好这学期也在上计算机算法设计与分析,老师布置了一道整数因子分解问题,题目为:对给定的大于1的正整数,分解为不同的分解式。如:12可分为:12乘1、6乘2、4乘3、3乘4等。

废话少说,先贴代码!

f = open('input.txt','r')#打开input.txt文件,给与读取权限,如果没有这个文件,会在源码保存的当前文件夹创建
s=int(f.read())#将读取的值赋转为整数型再传递给s
f.close()#切记每次打开文件后都要记得关闭

mylist = []

def f(n):
c=123 #c的值是无意义的,它的作用是将123传递到mylist里
if n==1:
mylist.append(c) #append()方法,将所得的值添加到列表里
for i in range(2, n+1): #切记range的集合是左闭右开区间,所以n要+1
if n % i == 0:
f(n//i)
f(s)#获取input文本的值,传递到函数f(n)
print(len(mylist)) #输出列表的长度

k = open('output.txt','w') #类似上面的input文件
k.write(str(len(mylist))) #传递到txt文件的字符要强转为string型
k.close()

我的主要思路就是每当循环计算出符合条件的式子,就将变量c的值赋值到mylist里,然后计算mylist的长度,就可以得出整数因子分解的个数。算法很简单,也很青涩,如果你有什么好的意见,欢迎评论呀。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: