1. 程式人生 > >Python “最短”挑戰(12.14)

Python “最短”挑戰(12.14)

Python “最短”挑戰(12.14)

Description

給定一個數,定義它的附屬數為把這個數表示成若干個(1個也行)連續素數的和的方法數。
比如,對於17,有2+3+5+7=17,17=17,所以17的附屬數為2。
輸入一個數,輸出它的附屬數。

Input

一個數n,保證是大於1的正整數

Output

n的附屬數
其餘要求如上題

參考程式碼

def is_prime(n,i=2):return True if i*i>
n else False if n%i==0 else is_prime(n,i+1) n,primes=int(input()),[i for i in range(2,n+1) if is_prime(i)] print(sum(sum(primes[i:j])==n for j in range(len(primes)+1) for i in range(j+1))) ''' def is_prime(n): if n==2 or n==3: return True if n<2 or n%2==0: return False i=3 while i*i<=n: if n%i==0: return False i+=2 return True n=int(input()) ans=0 for i in range(2,n+1): if (is_prime(i)): s=0 j=i while s<n and j<=n: if (is_prime(j)): s+=j j+=1 if s==n: ans+=1 print(ans) '''