#45856: python 紀錄


BensonDC (python戰士)

學校 : 不指定學校
編號 : 240921
來源 : [114.39.0.1]
最後登入時間 :
2025-04-20 17:12:34
n131. p3. 質數切割法 -- 110新北市資訊學科能力複賽 | From: [114.39.0.1] | 發表日期 : 2025-04-20 15:23

def main():
    L=int(input())
    if L==1 or L==2 or L==3:
        print(0)
        return
    primenum=[]
    def isprime(num): #質數篩法有待改進
        for i in range(2,int(num**0.5)+1):
            if num%i==0:
                return False
        return True
    for i in range(2,L+1):
        if isprime(i):
            primenum.append(i)
    
    dp=[0,0,0,0]+[float('inf')]*(L-3)
    for i in range(4,L+1):
        for j in primenum:
            if j>=i:
                break
            if i-j not in primenum: #用二分搜更好
                continue
            dp[i]=min(dp[i],dp[j]+dp[i-j]+i)
        if dp[i]==float('inf'):

            dp[i]=0
        continue
    print(dp[L])
main()

 

    
    

 
ZeroJudge Forum