summaryrefslogtreecommitdiff
path: root/problem51.ijs
blob: 642eb64ee1ce6b13b9d876d7c3c5076dde968886 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
group =: {{
	'low high' =. p:^:_1]10^y-1 0
	p:low}.i.high
}}

patterns =: {{
	I.(#~x=+/"1)#:i.2^y
}}

modified =: {{
	(x patterns #y) {{10#.(i.10)(x})"0 1 y}}"1 y
}}

familysize =: {{
	x {{
		>./+/"1(1&p:*.(10^_1+#y)&<:)x modified y
	}}"0 1] 10#.^:_1 y
}}

hasfamily =: {{
	primes =. group y
	sizes =. (1+i.y) familysize"0 1 primes
	{.primes{~/:~(#~0<]),I.x<:sizes
}}

smallest =: {{
	digits =. 10&#.^:_1]y
	min =. 10^_1+#digits
	groupsize =. 1+{.I.x=(1+i.#digits) familysize y
	mods =. groupsize modified digits
	{.(#~min&<:),mods#~x=+/"1(1&p:*.min&<:)mods
}}

find =: [ smallest hasfamily

problem51 =: 8 find 6 NB. I know it is a 6 digit number :D