Skip to content

Instantly share code, notes, and snippets.

@qddddr
qddddr / gist:3817071
Created October 2, 2012 07:35
euler 72 in J
x:<:+/(*((*/@:<:@~.@q:)%(*/@~.@q:)))"0>:i.1e6
@qddddr
qddddr / gist:3825424
Created October 3, 2012 06:35
euler 73
(print([rec(f a b)([^c(if(>(imag-part c)12e3)0(+(f a c)(f c b)1))](+ a b))]1+2i 1+3i))
@qddddr
qddddr / gist:3831541
Created October 4, 2012 04:52
euler 74 in J
nchains =: 3 (169 363601 1454) } 2 (871 872 45361 45362) } 0 $~ 1 + 6 * !9
solve =: 3 : 0
if. 0 = n =. y { nchains do.
z =. (+/@:!@(10&#.inv)) y
nchains =: (n =. (>:@solve@(z&[)) ` 1: @. (=&z) y) y } nchains
end.
n
)
+/ 60 = solve"0 >:i.1e6
@qddddr
qddddr / gist:3839948
Created October 5, 2012 14:01
euler 75 in J
v =: 0 $~ >:15e5
draw =: 3 : 0
i =. L =. +:m*m+n [ (n =. a+x) [ (m =. b+y) [ ('a b x y' =. y)
if. 2 | m-n do.
for_i. L*>:i.<.L%~<:#v do. v =: (>:i{v)i}v end.
end.
if. L < #v do. draw a;b;n;m [ (draw n;m;x;y) end.
)
((1!:2)&2) +/ 1 = v [ (draw 0 1 1 1)
@qddddr
qddddr / gist:3843492
Created October 6, 2012 02:22
euler 76 in J
q =: p M.
p =: 4 : '(((>:x)&q)+((x&q)@(-&x))) ` (0: ` 1: @. (x&=)) @. (x&>:) y'
((1!:2)&2) <: 1 q 100
@qddddr
qddddr / gist:3846731
Created October 7, 2012 01:08
euler 77 in J
g =: p:&(] ` 0: @. (<&0))
q =: p M.
p =: 4 : '(((x-g y)&q) + (x&q@<:)) ` (0: ` 1: @. (x=0&[)) @. ((x<2)&+.@(<&0)) y'
f =: 3 : '(y q (p:^:_1)y) + (0: ` _1: @. (y&=) p:(p:^:_1)y)'
((1!:2)&2) >:{:([^:((5000&<)@f@])>:)^:a: 3
@qddddr
qddddr / gist:3846758
Created October 7, 2012 01:25
euler 77 in J
q =: p M.
p =: 4 : '(((x-p:(0>.y))&q) + (x&q@<:)) ` (0: ` 1: @. (x=0&[)) @. ((x<2)&+.@(<&0)) y'
f =: 3 : '(y q (p:^:_1)y) + (0: ` _1: @. (y&=) p:(p:^:_1)y)'
((1!:2)&2) >:{:([^:((5000&<)@f@])>:)^:a: 3
@qddddr
qddddr / gist:3850649
Created October 8, 2012 03:59
euler 78
// g++ -O3 78.cpp; time ./a => 0.08s
#include <vector>
#include <iostream>
enum { m = (int)1e6, virgin = m };
std::vector<int> pns(100, virgin);
int p(int n)
{
@qddddr
qddddr / gist:3861928
Created October 9, 2012 22:42
euler 80
#!r6rs
(import (rnrs) (only (srfi :1) iota))
(define (sqrt=irrational? x)
(not (= x (expt (floor (sqrt x)) 2))))
(define (exact-sqrt x)
(let-values ([(a b) (exact-integer-sqrt x)]) a))
(define (sum-digits x)
(if (< x 10) x (+ (mod x 10) (sum-digits (div x 10)))))
@qddddr
qddddr / gist:3871486
Created October 11, 2012 10:24
euler 6 in J
(*:@(+/@:>:@:i.) - +/@:*:@:>:@:i.) 100