blob: 4d20a171d9af4022cda1a0d7978337fa4e7542bf (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
#! /usr/bin/python3
import unittest
from collections import deque
def psum(n):
pr=set(range(2,n+1))
for m in range(2,n+1):
for mi in range(2,n+1):
pr.discard(m*mi)
p=list(pr)
p.sort(reverse=True)
pi=dict()
for i in range(0,len(p)):
pi[p[i]]=i
c=deque()
o=list()
while True:
r=list()
s=n
if len(c)>0:
r=c.popleft()
s-=sum(p[i] for i in r)
if (s>0):
ru=set(r)
ca=set(pi[i] for i in p if i<=s)
ca-=ru
for i in ca:
q=r.copy()
q.append(i)
c.append(q)
elif (s==0):
o=[p[i] for i in r]
break
return len(o)
class TestMajority(unittest.TestCase):
def test_ex(self):
self.assertEqual(psum(9),2,'example')
unittest.main()
|