{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "true" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "load 'primes.rb'\n", "load 'array-numbers.rb'" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ ":truncations" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def truncations(n)\n", " ds = n.to_digits\n", " dsl = ds.length\n", " (0...(dsl-1)).flat_map {|i| [ds[0..i].to_i, ds[(i+1)..dsl].to_i]}\n", "end" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[1, 23, 12, 3]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "truncations(123)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ ":truncatable_prime" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def truncatable_prime(n)\n", " n.prime? && truncations(n).all? {|i| i.prime?}\n", "end" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "true" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "truncatable_prime(3797)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "false" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "truncatable_prime(3799)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[23, 37, 53, 73, 313, 317, 373, 797, 3137, 3797, 739397]" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(10..(10**6)).select {|n| truncatable_prime(n)}.to_a" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[23, 37, 53, 73, 313, 317, 373, 797, 3137, 3797, 739397]" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(10..(10**10)).lazy.select {|n| truncatable_prime(n)}.take(11).to_a" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "748317" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(10..(10**7)).lazy.select {|n| truncatable_prime(n)}.take(11).sum" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Ruby 2.4.0", "language": "ruby", "name": "ruby" }, "language_info": { "file_extension": ".rb", "mimetype": "application/x-ruby", "name": "ruby", "version": "2.4.0" } }, "nbformat": 4, "nbformat_minor": 0 }