标题: [原创代码] 无忧公主的数学时间134扩展 [打印本页]
作者: 元芳你怎么看 时间: 2016-4-5 09:57 标题: 无忧公主的数学时间134扩展
/*
通过传入第一个值和圈数,返回结果。
**/
def Ghost_sumfactors(num,n):
tmpnum = int(num)
a = num - tmpnum
if a != 0:
return "Please enter a positive integer!"
else:
for i in range(1,n+1):
sum = 1 + num
m = int(math.sqrt(num)) + 1
for j in range(2,m):
if num%j == 0:
sum = sum + j + num//j
num = sum
return sum
作者: codegay 时间: 2016-4-5 10:01
本帖最后由 codegay 于 2016-4-6 01:56 编辑
- """
- 无忧公主的数学时间134.py
- http://mp.weixin.qq.com/s?__biz=MzI5ODEwMDQyNw==&mid=403013919&idx=2&sn=7439014ae0182cb4b0222fc2234b34c3&3rd=MzA3MDU4NTYzMw==&scene=6#rd
- 2016年4月5日 21:46:24
- 求正整数n的因数之和的因数之和.
- """
- #输入一个正整数n,返回n因数之和的因数之和.也就是2次求因数之和
- def factorsx(n,x=2):#x为进行求因素之和的次数
- #def f(n):return sum([r for r in range(1,n+1) if n%r==0])#返回N的因数之和
- #f=lambda n:sum([r for r in range(1,n+1) if n%r==0])#等效写法
- f=lambda n:n+sum([r for r in range(1,n//2+1) if n%r==0])#-_-假装优化一下
- for r in range(x):
- n=f(n)
- print(n)
- return n
- factorsx(11)
复制代码
楼主的程序可能有BUG,以下输出97,按我的理解,应该是91.
print(Ghost_sumfactors(36,1))
作者: codegay 时间: 2016-4-5 10:04
这个网站题很多,https://projecteuler.net/
作者: 元芳你怎么看 时间: 2016-4-5 16:09
回复 3# codegay
谢谢指教!!!!
作者: codegay 时间: 2016-4-5 21:07
本帖最后由 codegay 于 2016-4-5 21:10 编辑
看她的解题思路 http://mp.weixin.qq.com/s?__biz= ... Mw==&scene=6#rd
以及sum是python中一个内置函数。保持不要用内置函数当变量名是个好习惯。
作者: 元芳你怎么看 时间: 2016-4-6 11:17
本帖最后由 元芳你怎么看 于 2016-4-6 11:26 编辑
- """
- 根据朋友们提出的问题和建议新改了下
- 无忧公主的数学时间134:
- http://mp.weixin.qq.com/s?__biz=MzI5ODEwMDQyNw==&mid=403013919&idx=2&sn=7439014ae0182cb4b0222fc2234b34c3&3rd=MzA3MDU4NTYzMw==&scene=6#rd
- """
- def Ghost_sumfactors(num,n):
- tmpnum = int(num)
- a = num - tmpnum
- if a != 0:
- return "Please enter a positive integer!"
- else:
- for i in range(1,n+1):
- sumfactors = 1 + num
- m = int(math.sqrt(num)) + 1
- for j in range(2,m):
- if num%j == 0:
- sumfactors = sumfactors + j + num//j
- if math.sqrt(num) - m + 1 == 0:
- sumfactors = sumfactors - math.sqrt(num)
- num = sumfactors
-
- return sumfactors
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |