Skip to content

Instantly share code, notes, and snippets.

@ccw
ccw / euler_p1.groovy
Created March 26, 2012 03:29
[Project Euler in Groovy] - P1
final def MAX = 1000
def sum = 0
(3..MAX-1).each {
if (it % 3 == 0 || it % 5 == 0) {
sum += it
}
}
println "sum => $sum"
@ccw
ccw / euler_p1.coffee
Created March 26, 2012 04:03
[Project Euler in CoffeeScript] - P1
(num += num if num % 3 == 0 || num % 5 == 0 for num in [1..1000])
alert num
@ccw
ccw / euler_p2.groovy
Created March 26, 2012 04:24
[Project Euler in Groovy] - P2
def MAX = 4000000
def fibonacci = [1,2]
def num = 3
while(num < MAX) {
fibonacci << num
num = fibonacci.get(fibonacci.size() - 2) + fibonacci.get(fibonacci.size() - 1)
}
def evens = fibonacci.grep { it % 2 == 0 }
@ccw
ccw / euler_p3.groovy
Created March 26, 2012 04:27
[Project Euler in Groovy] - P3
def primes = [2, 3, 5, 7, 11, 13, 17]
def MAX = 600851475143
def factor = 0
def i = primes.get(primes.size() - 1) + 1
while (MAX > 1) {
if(!primes.any { i % it == 0 }) {
primes << i
if (MAX % i == 0) {
factor = i
MAX = (long)(MAX/i)
@ccw
ccw / euler_p4.groovy
Created March 26, 2012 04:29
[Project Euler in Groovy] - P4
def x = 999
def y = 999
def found = false
def p
while (!found) {
p = String.valueOf(x * y)
def same = true
for (int i = 0; i < p.length() / 2; i++) {
if (p.charAt(i) != p.charAt(p.length() - i - 1)) {
@ccw
ccw / euler_p5.groovy
Created March 26, 2012 04:31
[Project Euler in Groovy] - P5
def MIN = 2, MAX = 20
def primes = [2, 3, 5, 7, 11, 13, 17, 19]
def factors = []
while (MIN <= MAX) {
if (MIN in primes) {
factors << MIN
} else {
// find MIN factors
def fn = []
def x = MIN
@ccw
ccw / euler_p6.groovy
Created March 26, 2012 04:32
[Project Euler in Groovy] - P6
def s1 = 0l, s2 = 0l
for (int i = 1; i <= 100; i++) {
s1 += (long)Math.pow(i, 2)
s2 += i
}
def x = (long)(Math.pow(s2, 2) - s1)
println x
@ccw
ccw / euler_p7.groovy
Created March 26, 2012 04:33
[Project Euler in Groovy] - P7
def primes = [2, 3, 5, 7, 11, 13, 17]
def MAX = 10001
def i = primes.get(primes.size() - 1) + 1
while (primes.size() < MAX) {
if(!primes.any { i % it == 0 }) {
primes << i
}
i++
}
@ccw
ccw / euler_p9.groovy
Created March 26, 2012 04:34
[Project Euler in Groovy] - P9
def t = 1000
def max_a = 332
def s = []
def max_b, min_c
for (int a = max_a; a > 0; a--) {
int c = min_c = (int)((t - a) / 2 + 1)
int b = max_b = t - a - min_c
while (c > b && b > a) {
def a2 = Math.pow(a, 2)
@ccw
ccw / euler_p10.groovy
Created March 26, 2012 04:36
[Project Euler in Groovy] - P10
def primes = [2, 3, 5, 7, 11, 13, 17, 19]
def MAX = 2000000
double sum = primes.sum()
def i = primes.get(primes.size() - 1) + 2
while (MAX > i) {
def found = true
for (int x = 0; x < primes.size() && primes.get(x)*primes.get(x) <= i; x++) {
if( i % primes.get(x) == 0) {
found = false
break