Skip to content
This repository

Project Euler Code Golf

Project Euler Problems
Rule I. If any Euler problem is unsolved and you solve it, you go on the board
Rule II. If you devise a solution shorter than what’s on the board, you may take that place on the board
Rule III. If you implement an agreed-upon change to the language, you get credit for all shortened solutions

1 +/&~&/(!1e3)!/:3 5 (Explanation: PE1 Explained) Kevin
2
Known bound: *+/{x*~x!2}32(|+\)\1 1
Unknown bound(b f/ x): +/{x@&~x!2}(4e6>+/-2#){x,+/-2#x}/1
isawdrones
3 |/d@&&/'2_'f'd:&~(f:{x!'!1+_sqrt x})600851475143 isawdrones
4 |/b@&{x~|x}'$b:,/a*/:a:!1000
Faster:
|/b@&{x~|x}'$b:?,/a*/:a:100+!900
isawdrones
5 Euclid’s algorithm:
{x*y%{:[y;_f[y]x!y;x]}[x]y}/1+!20
isawdrones
6 _(_sqr+/a)-+/a*a:1+!100 isawdrones
7 p:{:[x<4;,2;r,1_&~|/x#'~!:'r: _f[_ _ceil _sqrt x]]}
b:2;while[1e4>#a:p b*:2];a[10000]
isawdrones
8 |/*/'{x@(!5)+/:!-4+#x}0$',/0:` isawdrones
9 Brute force:
*/_*c@&1000=+/'c:b,'(_sqrt+/)'b*b:,/a,/:\:a:!500
isawdrones
10 p:{2_&{:[x@y;x&@[1,-1_ z#(1_ y#1),0;y;:;1];x]}/[x#1;2_! __ceil _sqrt x;x]};+/p@_2e6 Kevin
11 p:.:'0:`
d:{x ./:/:m@-1_1_=+/'m:,/n,/:\:n:!#x}
i:|/,/{:[4>#x;x;*/'x@(!4)+/:!-3+#x]}'
|/(i p;i@+p;i d@p;i d@|p)
isawdrones
12 Brute force:
f:{1__ x*(x+1)%2};c:1;{x<500}{#{d:&~x!'!1+_sqrt x;d,_ x%|d}f c+:1}\1;f@c
hakank
13 \p 0
10#($+/0.0$’0:`)_dv"."
isawdrones
14
clz:{:[x!2;1+3*x;_ x%2]}
a?|/a:{C:-1 1,(x-2)#0
  do[x+i:0
    if[~C@i
      b:&x>j:((i-1)<)clz\i
      C[j@b]:C[*|j]+(|!#j)@b]
    i+:1]
  C}@_1e6
Source
isawdrones
15
(40{1+':x,0}/1)20
_*/(-2+4*x)%x:1+!20 – implementing formulae \(C_{2n}^n\)
isawdrones
danbst
16 +/1000{x*:2;(*&x)_ x:((x>9),0)+0,x!/:10}/1 /slower: !' Kevin
17
a:$`one`two`three`four`five`six`seven`eight`nine
b:$`ten`eleven`twelve,($`thir`four,v:`fif`six`seven`eigh`nine),\:"teen"  
c:($`twen`thir`for,v),\:"ty"
g:a,b,c,/c,/:\:a
h:a,\:"hundred"    
i:g,h,/h,/:\:"and",/:g
z:#,/$i,`onethousand
Kevin
18 |/{(y+0,x)|y+x,0}/.:'0:`t.txt /shorter 0:` Kevin
19 +/{(&/"01"=-2#$_dj x)&6=-x!7}'from+!-((from:_(_jd 19010101))-(_jd 20001231)) hakank
20

xx: 1+til 100;
uc:{[x;y] tO:last[x]+y;aO:tO mod 10;bO:`int$(tO-aO) % 10;(-1_x),aO,bO}/[enlist 0;];
pp:{[x;y] mO:max count each rO:rO{[x;y] (y#0),x}'til count rO: y */: x;
          uc sum {[x;y] x,(y-count x)#0}[;mO] each rO };
lst:{[x] {parse x,"i"} each x} each reverse each string each xx
sum {[x;y] pp[x;y]}/[lst]

kuentang
21 f:{d:&~x!'!1+_sqrt x;d,_1_ x%d};+/&{(~&/x=b)&x~*|b:2{+/f x}\x}'!1e4 isawdrones
22 +/s*1+!#s:+/'-64+_ic m@<(-|/#:'m)$'m:.:'1_'(0,1_&","=n)_ n:",",,/0:`names.txt isawdrones
23 ? ?
24 ({:[1<x;,/(>:'(x,x)#1,x#0)[;0,'1+_f x-1];,!x]}10)[_1e6-1] hakank
25

xx: 1+til 100;
uc:{[x;y] tO:last[x]+y;aO:tO mod 10;bO:`int$(tO-aO) % 10;(-1_x),aO,bO}/[enlist 0;];
plus:{[x;y] mO:max count @/:(x;y) ;m:uc (x,(mO-count x)#0) 
    + (y,(mO-count y)#0);?[0=last m ;-1_m;m]};
count {[x] a:-2#x; x,enlist plus[a 0; a 1]}/[{[x] 1000>count last x};(enlist 1;enlist 1)]

kuentang
26 1+*>#:'{[n] {r:(10**|x)!*x; w:x?r; :[w=#x;x,r;(*x),w _ x]}/(n,1)}'1+!999 adamschmideg
27 ? ?
28 +/+\1,,/4#'2*1+!_1001%2 isawdrones
29 #?,/p^/:p:2+!99 silentbicycle
30 +/2_&{x=+/(0$'$x)^5}'!7*9^5 hakank
31
s:{+/{(y _ x),y#0}[x]'y*!_ceil(#x)%y+0.0}
e31:{*s/[(x#0),1;1 2 5 10 20 50 100 200]}
paul7
32 ? ?
33 ? ?
34 +/2_&{x=+/{*/1+!x}'0$'$x}'!50000 hakank
35 ? ?
36 +/&{&/{y~|y:x _vs y}'[2 10;x]}'!1e6
Faster:
p:{&{x~|x}'x@y};+/n@p[2_vs]n:p[$:;!1e6]
Kevin
37 ? ?
38 ? ?
39 ? ?
40 ? ?
41 ? ?
42 m:.:'1_'(0,1+&","=n)_",",n:*:0:`words.txt
+/{a=_ a:_sqrt 1+8*x}'+/'-64+_ic m@<(-|/#:'m)$'m
isawdrones
43 ? ?
44 ? ?
45 ? ?
46 ? ?
47 ? ?
48
uc:{[x;y] tO:last[x]+y;aO:tO mod 10;bO:`int$(tO-aO) % 10;(-1_x),aO,bO}/[enlist 0;];
plus:{[x;y] mO:max count @/:(x;y) ;m:uc (x,(mO-count x)#0) 
+ (y,(mO-count y)#0);?[0=last m ;-1_m;m]};
pp:{[x;y] mO:max count each rO:rO{[x;y] (y#0),x}'til count rO: y */: x;
m:uc sum {[x;y] x,(y-count x)#0}[;mO] each rO ; ?[0=last m ;-1_m;m]};
lst:{[x;y] ll:{parse x,"i"} each reverse string y;
plus[x;{[x;y]tmp:pp[x;y]; ?[10>=count tmp;tmp;10#tmp] }/[y#enlist ll]]}/[enlist[0];1+til 1000];
reverse 10#last lst
kuentang
49 ? ?
50 ? ?
51 ? ?
52 ? ?
53 +/~1e6>,/{x{+':0,x,0}\1.}100 isawdrones
54 ? ?
55 ? ?
56 ? ?
57 ? ?
58 ? ?
59 ? ?
60 ? ?
61 ? ?
62 ? ?
63 ? ?
64 ? ?
65 ? ?
66 ? ?
67 |/{(y+0,x)|y+x,0}/.:'-1_'0:`triangle.txt Kevin
68 ? ?
69 ? ?
70 ? ?
71 {a:2;c:5;while[~x<c+7;a+:3;c+:7];a}1e6 isawdrones
72 ? ?
73 ? ?
74 ? ?
75 ? ?
76 ? ?
77 ? ?
78 ? ?
79 ? ?
80 ? ?
81 ? ?
82 ? ?
83 ? ?
84 ? ?
85 ? ?
86 ? ?
87 ? ?
88 ? ?
89 A general solution with roman-arabic and arabic-roman number conversion
r:"IVXLCDM"
i:(!4)#\:0;i:(i,,0 1),(1,/:i),,0 2
ar:{d:10_vs x;,/d{r@(i+y)@x}'|(#d)#2*!4}
d:.+(`$/:r;*\1,6#5 2)
ra:{n:d[`$/:x];+/n*1-2*>':n,0}
answer:+/{r:-1_ x;r::["M"=*r;1_ r;r];(#r)-#ar ra r}/:0:"roman.txt"
/ "M" hack, because ar fails above 4000
adamschmideg
90 ? ?
91 ? ?
92 ? ?
93 ? ?
94 ? ?
95 ? ?
96 ? ?
97 ? ?
98 ? ?
99 ? ?
100 ? ?
Something went wrong with that request. Please try again.