楼主,你输入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

相关推荐

SadnessAlex:跟三十五岁原则一样,人太多给这些***惯坏了
点赞 评论 收藏
分享
牛客网
牛客企业服务