楼主,你输入1355,输出是4,但是我用我的方法输出是3,求问怎么回事。。 def init(n):     prim=[True for i in range(n)]     prim[0]=False     for i in range(2,n):         if prim[i]:             k=2             while(k*i<n):                 prim[k*i]=False                 k+=1     return prim      #n=int(input()) n=1355 prim=init(n) trans=[0 for i in range(n+1)] for i in range(1,n+1):     trans[i]=1     k=2     while k<i and i%k!=0:         k+=1     if i%k==0:         trans[i]=i//k dp=[0 for i in range(n+1)] dp[2]=1 for i in range(3,n+1):     dp[i]=trans[i]     for k in range(2,i-1):         if dp[i-k]+trans[k]<dp[i]:             dp[i]=dp[i-k]+trans[k] print(dp[n]) 1355可分为3+31+1321,这是仨质数之和呀。。。
点赞 2

相关推荐

程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务