--- /dev/null
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "true"
+ ]
+ },
+ "execution_count": 1,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "require_relative 'array-numbers'"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 52,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "865"
+ ]
+ },
+ "execution_count": 52,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "cubes = Hash.new {|h, k| h[k] = []}\n",
+ "cube_roots = {}\n",
+ "(100..1000).each do |i|\n",
+ " c = (i ** 3)\n",
+ " p = c.to_digits.sort.join\n",
+ " # cubes[p] = (cubes[p] + [c])\n",
+ " cubes[p] << c\n",
+ " cube_roots[c] = i\n",
+ "end\n",
+ "cubes.length"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 53,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{\"01234566\"=>[41063625, 56623104, 66430125]}"
+ ]
+ },
+ "execution_count": 53,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "cubes.select {|k, v| v.length >= 3}"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 42,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "345"
+ ]
+ },
+ "execution_count": 42,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "cube_roots[41063625]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 58,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "127035954683"
+ ]
+ },
+ "execution_count": 58,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "target = 5\n",
+ "\n",
+ "cubes = Hash.new {|h, k| h[k] = []}\n",
+ "finished = false\n",
+ "i = 100\n",
+ "while ! finished\n",
+ " c = (i ** 3)\n",
+ " p = c.to_digits.sort.join\n",
+ " cubes[p] << c\n",
+ " if cubes[p].length == target\n",
+ " finished = true\n",
+ " else\n",
+ " i += 1\n",
+ " end\n",
+ "end\n",
+ "\n",
+ "cubes[p].min"
+ ]
+ },
+ {
+ "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": 2
+}