Home
About
Resume
Projects
Links
Blog
Download notebook
{ "cells": [ { "cell_type": "markdown", "id": "a469358e-2f57-4bd6-9c8d-c59f3d77920b", "metadata": {}, "source": [ "### Q51\n", "Find the smallest prime which, by replacing part of the number (not necessarily adjacent digits) with the same digit, is part of an eight prime value family." ] }, { "cell_type": "code", "execution_count": 1, "id": "62ce1f5d-9a9e-4fca-9713-10e7c3085bbd", "metadata": {}, "outputs": [], "source": [ "def prime_numbers(n):\n", " result = []\n", " sieve = [True] * (n+1)\n", " for p in range(2, n+1):\n", " if (sieve[p]):\n", " result.append(p)\n", " for i in range(p, n+1, p):\n", " sieve[i] = False\n", " return result \n", "\n", "def smallest_prime_family(n, search_range=1000000):\n", " prime_list = prime_numbers(search_range)\n", " prime_set = set(prime_list)\n", " for i in prime_list:\n", " s = str(i)\n", " for j in range(3):\n", " temp_set = set(int(s.replace(str(j), str(k))) for k in range(10) if s[0]!= '0' and k!=0)\n", " if len(temp_set&prime_set) == n:\n", " return i\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "60a03530-995d-4e60-872e-ecc2f17520ca", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 234 ms, sys: 19.3 ms, total: 254 ms\n", "Wall time: 250 ms\n" ] }, { "data": { "text/plain": [ "121313" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%time\n", "smallest_prime_family(8)" ] }, { "cell_type": "code", "execution_count": null, "id": "d704887d-c932-4149-93c4-017d8757d77f", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "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.8.10" } }, "nbformat": 4, "nbformat_minor": 5 }
Previous Notebook:
Project Euler Q50
Next Notebook:
Project Euler Q52
Loading