aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-153/laurent-rosenfeld/go/ch-1.go14
-rw-r--r--challenge-153/laurent-rosenfeld/kotlin/ch-1.kt9
-rw-r--r--challenge-153/laurent-rosenfeld/kotlin/ch-2.kt16
-rw-r--r--challenge-153/laurent-rosenfeld/lua/ch-1.lua7
-rw-r--r--challenge-153/laurent-rosenfeld/lua/ch-2.lua19
-rw-r--r--challenge-153/laurent-rosenfeld/pascal/ch-1.p16
-rw-r--r--challenge-153/laurent-rosenfeld/r/ch-1.r9
-rw-r--r--challenge-153/laurent-rosenfeld/ruby/ch-1.rb8
-rw-r--r--challenge-153/laurent-rosenfeld/ruby/ch-2.rb20
-rw-r--r--challenge-153/laurent-rosenfeld/rust/ch-1.rust9
-rw-r--r--challenge-153/laurent-rosenfeld/scala/ch-1.scala9
-rw-r--r--challenge-153/laurent-rosenfeld/scala/ch-2.scala23
-rw-r--r--challenge-153/laurent-rosenfeld/tcl/ch-1.tcl11
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 ""