diff options
| -rw-r--r-- | challenge-153/laurent-rosenfeld/go/ch-1.go | 14 | ||||
| -rw-r--r-- | challenge-153/laurent-rosenfeld/kotlin/ch-1.kt | 9 | ||||
| -rw-r--r-- | challenge-153/laurent-rosenfeld/kotlin/ch-2.kt | 16 | ||||
| -rw-r--r-- | challenge-153/laurent-rosenfeld/lua/ch-1.lua | 7 | ||||
| -rw-r--r-- | challenge-153/laurent-rosenfeld/lua/ch-2.lua | 19 | ||||
| -rw-r--r-- | challenge-153/laurent-rosenfeld/pascal/ch-1.p | 16 | ||||
| -rw-r--r-- | challenge-153/laurent-rosenfeld/r/ch-1.r | 9 | ||||
| -rw-r--r-- | challenge-153/laurent-rosenfeld/ruby/ch-1.rb | 8 | ||||
| -rw-r--r-- | challenge-153/laurent-rosenfeld/ruby/ch-2.rb | 20 | ||||
| -rw-r--r-- | challenge-153/laurent-rosenfeld/rust/ch-1.rust | 9 | ||||
| -rw-r--r-- | challenge-153/laurent-rosenfeld/scala/ch-1.scala | 9 | ||||
| -rw-r--r-- | challenge-153/laurent-rosenfeld/scala/ch-2.scala | 23 | ||||
| -rw-r--r-- | challenge-153/laurent-rosenfeld/tcl/ch-1.tcl | 11 |
13 files changed, 170 insertions, 0 deletions
diff --git a/challenge-153/laurent-rosenfeld/go/ch-1.go b/challenge-153/laurent-rosenfeld/go/ch-1.go new file mode 100644 index 0000000000..29af4999d3 --- /dev/null +++ b/challenge-153/laurent-rosenfeld/go/ch-1.go @@ -0,0 +1,14 @@ +package main + +import "fmt" + +func main() { + left_fact := 1 + fact := 1 + for i := 1; i <= 10; i++ { + fmt.Printf("%d ", left_fact) + fact *= i + left_fact += fact + } + fmt.Printf("\n") +} diff --git a/challenge-153/laurent-rosenfeld/kotlin/ch-1.kt b/challenge-153/laurent-rosenfeld/kotlin/ch-1.kt new file mode 100644 index 0000000000..abb6aac230 --- /dev/null +++ b/challenge-153/laurent-rosenfeld/kotlin/ch-1.kt @@ -0,0 +1,9 @@ +fun main() { + var fact = 1 + var left_fact = 1 + for (i in 1..9) { + fact *= i + left_fact += fact + print("$left_fact ") + } +} diff --git a/challenge-153/laurent-rosenfeld/kotlin/ch-2.kt b/challenge-153/laurent-rosenfeld/kotlin/ch-2.kt new file mode 100644 index 0000000000..9734090b7e --- /dev/null +++ b/challenge-153/laurent-rosenfeld/kotlin/ch-2.kt @@ -0,0 +1,16 @@ +fun main() { + var fact = mutableListOf<Int>() + fact.add(1) + for (n in 1..9) { + fact.add(n * fact[n-1]) + } + for (num in 1..50000) { + var i = num + var sum = 0 + while (i > 0) { + sum += fact[i % 10] + i /= 10 + } + if (num == sum) print ("$num ") + } +} diff --git a/challenge-153/laurent-rosenfeld/lua/ch-1.lua b/challenge-153/laurent-rosenfeld/lua/ch-1.lua new file mode 100644 index 0000000000..69c412dea4 --- /dev/null +++ b/challenge-153/laurent-rosenfeld/lua/ch-1.lua @@ -0,0 +1,7 @@ +fact = 1 +left_fact = 1 +for n = 1, 10 do + print(left_fact) + fact = fact * n + left_fact = left_fact + fact +end diff --git a/challenge-153/laurent-rosenfeld/lua/ch-2.lua b/challenge-153/laurent-rosenfeld/lua/ch-2.lua new file mode 100644 index 0000000000..de67df223f --- /dev/null +++ b/challenge-153/laurent-rosenfeld/lua/ch-2.lua @@ -0,0 +1,19 @@ +function is_factorion(fact, num) + sum = 0 + i = num + while i > 0 do + sum = sum + fact[ 1 + i % 10] + i = math.floor(i / 10) + end + return num == sum +end + +fact = {1} +for n = 1, 10 do + table.insert(fact, n * fact[n]) +end +for j = 1, 50000 do + if is_factorion(fact, j) then + print(j) + end +end diff --git a/challenge-153/laurent-rosenfeld/pascal/ch-1.p b/challenge-153/laurent-rosenfeld/pascal/ch-1.p new file mode 100644 index 0000000000..ccac526e25 --- /dev/null +++ b/challenge-153/laurent-rosenfeld/pascal/ch-1.p @@ -0,0 +1,16 @@ +Program leftfact; + +var + fact, left_fact: longint; + i: integer; + +begin + left_fact := 1; + fact := 1; + for i := 1 to 10 do begin + write(left_fact, ' '); + fact := fact * i; + left_fact := left_fact + fact; + end; + writeln(''); +end. diff --git a/challenge-153/laurent-rosenfeld/r/ch-1.r b/challenge-153/laurent-rosenfeld/r/ch-1.r new file mode 100644 index 0000000000..49aeda5ceb --- /dev/null +++ b/challenge-153/laurent-rosenfeld/r/ch-1.r @@ -0,0 +1,9 @@ +left_fact <- 1 +fact <- 1 + +for (i in 1:10) { + cat(left_fact, '') + fact <- fact * i + left_fact <- left_fact + fact +} +cat("\n") diff --git a/challenge-153/laurent-rosenfeld/ruby/ch-1.rb b/challenge-153/laurent-rosenfeld/ruby/ch-1.rb new file mode 100644 index 0000000000..46cfb7db61 --- /dev/null +++ b/challenge-153/laurent-rosenfeld/ruby/ch-1.rb @@ -0,0 +1,8 @@ +fact = 1 +left_fact = 1 +for n in 1..10 + printf "%d ", left_fact + fact *= n + left_fact += fact +end +printf "\n" diff --git a/challenge-153/laurent-rosenfeld/ruby/ch-2.rb b/challenge-153/laurent-rosenfeld/ruby/ch-2.rb new file mode 100644 index 0000000000..a5118ea7c7 --- /dev/null +++ b/challenge-153/laurent-rosenfeld/ruby/ch-2.rb @@ -0,0 +1,20 @@ +def is_factorion(fact, num) + sum = 0 + i = num + while i > 0 + i, d = i.divmod(10) + sum += fact[d] + end + return num == sum +end + +fact = [1] +for n in 1..10 + fact.push(n * fact[n - 1]) +end +for j in 1..50000 + if is_factorion(fact, j) + printf "%d ", j + end +end +printf("\n") diff --git a/challenge-153/laurent-rosenfeld/rust/ch-1.rust b/challenge-153/laurent-rosenfeld/rust/ch-1.rust new file mode 100644 index 0000000000..0c84828061 --- /dev/null +++ b/challenge-153/laurent-rosenfeld/rust/ch-1.rust @@ -0,0 +1,9 @@ +fn main() { + let mut fact = 1; + let mut left_fact = 1; + for n in 1..11 { + println!("{}", left_fact); + fact = fact * n; + left_fact = left_fact + fact; + } +} diff --git a/challenge-153/laurent-rosenfeld/scala/ch-1.scala b/challenge-153/laurent-rosenfeld/scala/ch-1.scala new file mode 100644 index 0000000000..5dced659ff --- /dev/null +++ b/challenge-153/laurent-rosenfeld/scala/ch-1.scala @@ -0,0 +1,9 @@ +object fact_left extends App { + var fact = 1 + var left_fact = 1 + for (n <- 1 to 10) { + println(left_fact) + fact *= n + left_fact += fact + } +} diff --git a/challenge-153/laurent-rosenfeld/scala/ch-2.scala b/challenge-153/laurent-rosenfeld/scala/ch-2.scala new file mode 100644 index 0000000000..2a21e41882 --- /dev/null +++ b/challenge-153/laurent-rosenfeld/scala/ch-2.scala @@ -0,0 +1,23 @@ +object factorion extends App { + def is_factorion(fact: Array[Int], num: Int): Boolean = { + var sum = 0 + var i = num + while (i > 0) { + sum += fact(i % 10) + i /= 10 + } + return num == sum + } + + val fact = new Array[Int](12) + fact(0) = 1 + for (n <- 1 to 9) { + fact(n) = n * fact(n - 1) + } + + for (j <- 1 to 50000) { + if (is_factorion(fact, j)) { + println(j) + } + } +} diff --git a/challenge-153/laurent-rosenfeld/tcl/ch-1.tcl b/challenge-153/laurent-rosenfeld/tcl/ch-1.tcl new file mode 100644 index 0000000000..c224f710f2 --- /dev/null +++ b/challenge-153/laurent-rosenfeld/tcl/ch-1.tcl @@ -0,0 +1,11 @@ +set left_fact 1 +set fact 1 +puts -nonewline $left_fact + +for {set i 1} {$i <= 10} {incr i} { + puts -nonewline "${left_fact} " + set fact [expr $fact * $i] + set left_fact [expr $left_fact + $fact] + +} +puts "" |
