]> gitweb.factorcode.org Git - factor.git/blob - extra/project-euler/012/012.factor
Delete empty unit tests files, remove 1- and 1+, reorder IN: lines in a lot of places...
[factor.git] / extra / project-euler / 012 / 012.factor
1 ! Copyright (c) 2007 Aaron Schaefer.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: kernel math project-euler.common ;
4 IN: project-euler.012
5
6 ! http://projecteuler.net/index.php?section=problems&id=12
7
8 ! DESCRIPTION
9 ! -----------
10
11 ! The sequence of triangle numbers is generated by adding the natural numbers.
12 ! So the 7th triangle number would be 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28. The first
13 ! ten terms would be:
14
15 !     1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...
16
17 ! Let us list the factors of the first seven triangle numbers:
18
19 !      1: 1
20 !      3: 1,3
21 !      6: 1,2,3,6
22 !     10: 1,2,5,10
23 !     15: 1,3,5,15
24 !     21: 1,3,7,21
25 !     28: 1,2,4,7,14,28
26
27 ! We can see that the 7th triangle number, 28, is the first triangle number to
28 ! have over five divisors.
29
30 ! Which is the first triangle number to have over five-hundred divisors?
31
32
33 ! SOLUTION
34 ! --------
35
36 : euler012 ( -- answer )
37     8 [ dup nth-triangle tau* 500 < ] [ 1 + ] while nth-triangle ;
38
39 ! [ euler012 ] 10 ave-time
40 ! 6573 ms ave run time - 346.27 SD (10 trials)
41
42 SOLUTION: euler012