From 6e9f787eb5b06587049a2c3c2833b61471749966 Mon Sep 17 00:00:00 2001 From: filifa Date: Sat, 24 May 2025 16:50:19 -0400 Subject: [PATCH] add problem 77 --- notebooks/problem0077.ipynb | 78 +++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 notebooks/problem0077.ipynb diff --git a/notebooks/problem0077.ipynb b/notebooks/problem0077.ipynb new file mode 100644 index 0000000..b820bb6 --- /dev/null +++ b/notebooks/problem0077.ipynb @@ -0,0 +1,78 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "5411064f", + "metadata": {}, + "source": [ + "# [Prime Summations](https://projecteuler.net/problem=77)\n", + "\n", + "Once again, we can adapt our solution to [problem 31](https://projecteuler.net/problem=31). Here, there's the added wrinkle that we don't know how far out we need to calculate our generating function, but we can work around this by just repeatedly increasing our precision and recalculating until we find our answer." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "1b5376e2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1 + x^2 + x^3 + x^4 + 2*x^5 + 2*x^6 + 3*x^7 + 3*x^8 + 4*x^9 + 5*x^10 + 6*x^11 + 7*x^12 + 9*x^13 + 10*x^14 + 12*x^15 + 14*x^16 + 17*x^17 + 19*x^18 + 23*x^19 + 26*x^20 + 30*x^21 + 35*x^22 + 40*x^23 + 46*x^24 + 52*x^25 + 60*x^26 + 67*x^27 + 77*x^28 + 87*x^29 + 98*x^30 + 111*x^31 + 124*x^32 + 140*x^33 + 157*x^34 + 175*x^35 + 197*x^36 + 219*x^37 + 244*x^38 + 272*x^39 + 302*x^40 + 336*x^41 + 372*x^42 + 413*x^43 + 456*x^44 + 504*x^45 + 557*x^46 + 614*x^47 + 677*x^48 + 744*x^49 + 819*x^50 + 899*x^51 + 987*x^52 + 1083*x^53 + 1186*x^54 + 1298*x^55 + 1420*x^56 + 1552*x^57 + 1695*x^58 + 1850*x^59 + 2018*x^60 + 2198*x^61 + 2394*x^62 + 2605*x^63 + 2833*x^64 + 3079*x^65 + 3344*x^66 + 3630*x^67 + 3936*x^68 + 4268*x^69 + 4624*x^70 + 5007*x^71 + 5419*x^72 + 5861*x^73 + 6336*x^74 + 6845*x^75 + 7393*x^76 + 7979*x^77 + 8608*x^78 + 9282*x^79 + O(x^80)" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "prec = 20\n", + "while True:\n", + " R. = PowerSeriesRing(ZZ, default_prec=prec)\n", + " G = 1 / prod(1 - x^p for p in primes_first_n(prec))\n", + " \n", + " d = G.dict()\n", + " if any(c > 5000 for c in d.values()):\n", + " break\n", + " \n", + " prec *= 2\n", + "\n", + "G" + ] + }, + { + "cell_type": "markdown", + "id": "af318759", + "metadata": {}, + "source": [ + "We can see that $x^{71}$ is our first term with a coeffcient over 5000, so our answer is 71.\n", + "\n", + "## Relevant sequences\n", + "* Number of partitions of $n$ into prime parts: [A000607](https://oeis.org/A000607)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "SageMath 9.5", + "language": "sage", + "name": "sagemath" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.2" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}