From 68e5bb48041252ce72f35de35892de1d2934b1d1 Mon Sep 17 00:00:00 2001 From: Daniel Ingram Date: Thu, 22 Mar 2018 12:09:45 -0400 Subject: [PATCH] Solution to Problem 76 --- Project Euler/Problem 76/sol1.py | 35 ++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 Project Euler/Problem 76/sol1.py diff --git a/Project Euler/Problem 76/sol1.py b/Project Euler/Problem 76/sol1.py new file mode 100644 index 000000000..2832f6d7a --- /dev/null +++ b/Project Euler/Problem 76/sol1.py @@ -0,0 +1,35 @@ +from __future__ import print_function +''' +Counting Summations +Problem 76 + +It is possible to write five as a sum in exactly six different ways: + +4 + 1 +3 + 2 +3 + 1 + 1 +2 + 2 + 1 +2 + 1 + 1 + 1 +1 + 1 + 1 + 1 + 1 + +How many different ways can one hundred be written as a sum of at least two positive integers? +''' +try: + xrange #Python 2 +except NameError: + xrange = range #Python 3 + +def partition(m): + memo = [[0 for _ in xrange(m)] for _ in xrange(m+1)] + for i in xrange(m+1): + memo[i][0] = 1 + + for n in xrange(m+1): + for k in xrange(1, m): + memo[n][k] += memo[n][k-1] + if n > k: + memo[n][k] += memo[n-k-1][k] + + return (memo[m][m-1] - 1) + +print(partition(100)) \ No newline at end of file