题解 | #字符串分隔#

质数因子

http://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607

用迭代去处理质子问题,在2000000014超大数时遇到内存及时间问题,考虑当质子大于其平方根时,数本身就不存在质子或只有1和其本身,故加了 i > math.sqrt(num) 返回其本身

from sys import stdin
import math
ostr = stdin.readlines()
def zfunc(x):
    num = int(x)
    if num == 1 :
        return ' '
    for i in range(2,num+1):
        # if num == 0 :
        #     return
        # elif i == 0 or i == 1:
        #     continue
        if i>math.sqrt(num):
            i = num
        if num%i == 0:
            z = zfunc(num/i)
            return str(i) +' ' + str (z)
        else :
            continue
for i in ostr:
    #print (i.strip())
    a = zfunc(i.strip())
    print(a.lstrip(' '))
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务