aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-174/laurent-rosenfeld/d/ch-1.d27
-rw-r--r--challenge-174/laurent-rosenfeld/dart/ch-1.dart25
-rw-r--r--challenge-174/laurent-rosenfeld/go/ch-1.go32
-rw-r--r--challenge-174/laurent-rosenfeld/java/DisariumNumbers.java29
-rw-r--r--challenge-174/laurent-rosenfeld/javascript/ch-1.js20
-rw-r--r--challenge-174/laurent-rosenfeld/kotlin/ch-1.kt27
-rw-r--r--challenge-174/laurent-rosenfeld/nim/ch-1.nim18
-rw-r--r--challenge-174/laurent-rosenfeld/ring/ch-1.ring25
-rw-r--r--challenge-174/laurent-rosenfeld/ruby/ch-1.rb19
-rw-r--r--challenge-174/laurent-rosenfeld/rust/ch-1.rs31
-rw-r--r--challenge-174/laurent-rosenfeld/scala/ch-1.scala27
-rw-r--r--challenge-174/laurent-rosenfeld/tcl/ch-1.tcl22
12 files changed, 302 insertions, 0 deletions
diff --git a/challenge-174/laurent-rosenfeld/d/ch-1.d b/challenge-174/laurent-rosenfeld/d/ch-1.d
new file mode 100644
index 0000000000..ef83060c27
--- /dev/null
+++ b/challenge-174/laurent-rosenfeld/d/ch-1.d
@@ -0,0 +1,27 @@
+import std.stdio;
+import std.math;
+import std.conv;
+
+bool is_disarium(int num) {
+ int n = num;
+ int sum = 0;
+ ulong len = to!string(num, 10).length;
+ while (n > 0) {
+ sum += pow(n % 10, len);
+ n /= 10;
+ len--;
+ }
+ return num == sum;
+}
+void main() {
+ int i = 0;
+ int count = 0;
+ while (count < 19) {
+ if (is_disarium(i)) {
+ printf("%d ", i);
+ count++;
+ }
+ i++;
+ }
+ writeln(" ");
+}
diff --git a/challenge-174/laurent-rosenfeld/dart/ch-1.dart b/challenge-174/laurent-rosenfeld/dart/ch-1.dart
new file mode 100644
index 0000000000..15fda8e3ea
--- /dev/null
+++ b/challenge-174/laurent-rosenfeld/dart/ch-1.dart
@@ -0,0 +1,25 @@
+import "dart:math";
+import "dart:io";
+void main() {
+ var count = 0;
+ var i = 0;
+ while (count < 19) {
+ if (is_disarium(i)) {
+ stdout.write("$i ");
+ count++;
+ }
+ i++;
+ }
+}
+
+bool is_disarium(numb) {
+ var n = numb;
+ var len = n.toString().length;
+ var sum = 0;
+ while (n > 0) {
+ sum += (pow(n % 10, len)).toInt();
+ n = (n / 10).toInt();
+ len--;
+ }
+ return numb == sum;
+}
diff --git a/challenge-174/laurent-rosenfeld/go/ch-1.go b/challenge-174/laurent-rosenfeld/go/ch-1.go
new file mode 100644
index 0000000000..ac7d184166
--- /dev/null
+++ b/challenge-174/laurent-rosenfeld/go/ch-1.go
@@ -0,0 +1,32 @@
+package main
+
+import (
+ "fmt"
+ "math"
+ "strconv"
+)
+
+func is_disarium(num int) bool {
+ n := num
+ i := 0
+ sum := 0
+ l := len(strconv.Itoa(n))
+ for n > 0 {
+ sum += int(math.Pow(float64(n%10), float64(l-i)))
+ n /= 10
+ i++
+ }
+ return sum == num
+}
+func main() {
+ i := 0
+ count := 0
+ for count < 19 {
+ if is_disarium(i) {
+ fmt.Printf("%d ", i)
+ count++
+ }
+ i++
+ }
+ fmt.Println("")
+}
diff --git a/challenge-174/laurent-rosenfeld/java/DisariumNumbers.java b/challenge-174/laurent-rosenfeld/java/DisariumNumbers.java
new file mode 100644
index 0000000000..1bf4468fe9
--- /dev/null
+++ b/challenge-174/laurent-rosenfeld/java/DisariumNumbers.java
@@ -0,0 +1,29 @@
+import java.lang.Math;
+
+public class DisariumNumbers {
+ public static boolean is_disarium(int num) {
+ int n = num;
+ int len = Integer.toString(n).length();
+ int sum = 0;
+ int i = 1;
+ while (n > 0) {
+ sum += Math.pow(n % 10, len - i + 1);
+ n /= 10;
+ i ++;
+ }
+ return sum == num;
+ }
+
+ public static void main(String[] args) {
+ int i = 0;
+ int count = 0;
+ while (count <= 18) {
+ if (is_disarium(i)) {
+ System.out.printf("%d ", i);
+ count++;
+ }
+ i++;
+ }
+ System.out.printf("%s", "\n");
+ }
+}
diff --git a/challenge-174/laurent-rosenfeld/javascript/ch-1.js b/challenge-174/laurent-rosenfeld/javascript/ch-1.js
new file mode 100644
index 0000000000..22f074292b
--- /dev/null
+++ b/challenge-174/laurent-rosenfeld/javascript/ch-1.js
@@ -0,0 +1,20 @@
+function is_disarium (num) {
+ let n = num
+ let len = n.toString().length
+ let sum = 0
+ while (n > 0) {
+ sum += (n % 10) ** len
+ n = parseInt(n / 10, 10)
+ len--
+ }
+ return num == sum
+}
+let count = 0
+let i = 1
+while (count < 18) {
+ if (is_disarium(i)) {
+ process.stdout.write(i + " ")
+ count++
+ }
+ i++
+}
diff --git a/challenge-174/laurent-rosenfeld/kotlin/ch-1.kt b/challenge-174/laurent-rosenfeld/kotlin/ch-1.kt
new file mode 100644
index 0000000000..23d76f71a9
--- /dev/null
+++ b/challenge-174/laurent-rosenfeld/kotlin/ch-1.kt
@@ -0,0 +1,27 @@
+fun power(n: Int, exp: Int): Int {
+ return when {
+ exp > 1 -> n * power(n, exp-1)
+ exp == 1 -> n
+ else -> 1
+ }
+}
+fun is_disarium(num: Int): Boolean {
+ val n = num.toString()
+ var sum = 0
+ for (i in 1..n.length) {
+ sum += power (n[i-1] - '0', i)
+ }
+ return sum == num
+}
+fun main() {
+ var i = 0
+ var count = 0
+ while (count < 19) {
+ if (is_disarium(i)) {
+ print("$i ")
+ count++
+ }
+ i++
+ }
+ println("")
+}
diff --git a/challenge-174/laurent-rosenfeld/nim/ch-1.nim b/challenge-174/laurent-rosenfeld/nim/ch-1.nim
new file mode 100644
index 0000000000..407192a6ed
--- /dev/null
+++ b/challenge-174/laurent-rosenfeld/nim/ch-1.nim
@@ -0,0 +1,18 @@
+import strutils
+import math
+
+proc is_disarium(num: int): bool =
+ let n = intToStr(num)
+ var sum = 0
+ for i in 0..len(n)-1:
+ sum += int((int(n[i])-48) ^ (i+1))
+ return sum == num
+
+var i = 0
+var count = 0
+while count < 19:
+ if is_disarium(i):
+ stdout.write i, " "
+ count += 1
+ i += 1
+echo ""
diff --git a/challenge-174/laurent-rosenfeld/ring/ch-1.ring b/challenge-174/laurent-rosenfeld/ring/ch-1.ring
new file mode 100644
index 0000000000..b4afb490b9
--- /dev/null
+++ b/challenge-174/laurent-rosenfeld/ring/ch-1.ring
@@ -0,0 +1,25 @@
+i = 0
+count = 0
+while count < 19
+ if is_disarium(i)
+ see "" + i + " "
+ count++
+ ok
+ i++
+end
+see nl
+
+func pow (base, exp)
+ result = 1
+ for i = 0 to exp - 1
+ result *= base
+ next
+ return result
+
+func is_disarium (num)
+ n = "" + num
+ sum = 0
+ for i = 1 to len(n)
+ sum += pow (n[i] % 10, i)
+ next
+ return sum = num
diff --git a/challenge-174/laurent-rosenfeld/ruby/ch-1.rb b/challenge-174/laurent-rosenfeld/ruby/ch-1.rb
new file mode 100644
index 0000000000..9a40c5bad4
--- /dev/null
+++ b/challenge-174/laurent-rosenfeld/ruby/ch-1.rb
@@ -0,0 +1,19 @@
+def is_disarium(num)
+ n = num.to_s
+ sum = 0
+ for i in 1..(n.length)
+ sum += n[i-1].to_i**i
+ end
+ return sum == num
+end
+
+i = 0
+count = 0
+while count < 19
+ if is_disarium(i)
+ printf("%d ", i)
+ count += 1
+ end
+ i += 1
+end
+print("\n")
diff --git a/challenge-174/laurent-rosenfeld/rust/ch-1.rs b/challenge-174/laurent-rosenfeld/rust/ch-1.rs
new file mode 100644
index 0000000000..ed50b63ce4
--- /dev/null
+++ b/challenge-174/laurent-rosenfeld/rust/ch-1.rs
@@ -0,0 +1,31 @@
+fn power(n: i32, exp: i32) -> i32 {
+ let mut result = 1;
+ for _i in 0..exp {
+ result *= n;
+ }
+ return result;
+}
+fn is_disarium(num: i32) -> bool {
+ let mut n = num;
+ let mut sum = 0;
+ let mut i = 1;
+ let len = num.to_string().len();
+ while n > 0 {
+ sum += power(n % 10, len as i32 - i + 1);
+ n /= 10;
+ i += 1
+ }
+ return sum == num;
+}
+fn main() {
+ let mut i = 0;
+ let mut count = 0;
+ while count <= 18 {
+ if is_disarium(i) {
+ print!("{} ", i);
+ count += 1;
+ }
+ i += 1;
+ }
+ println!("{}", " ")
+}
diff --git a/challenge-174/laurent-rosenfeld/scala/ch-1.scala b/challenge-174/laurent-rosenfeld/scala/ch-1.scala
new file mode 100644
index 0000000000..d289c21350
--- /dev/null
+++ b/challenge-174/laurent-rosenfeld/scala/ch-1.scala
@@ -0,0 +1,27 @@
+object Disarium extends App {
+ def power(base: Int, exp: Int): Int = {
+ var result = 1
+ for (i <- 1 to exp) {
+ result *= base
+ }
+ return result
+ }
+ def is_disarium(num: Int): Boolean = {
+ val digits = num.toString.split("")
+ var sum = 0
+ for (i <- 0 to (digits.size - 1)) {
+ sum += power(digits(i).toInt, i + 1)
+ }
+ return num == sum
+ }
+ var i = 0
+ var count = 0
+ while (count < 19) {
+ if (is_disarium(i)) {
+ count += 1
+ printf("%d ", i)
+ }
+ i += 1
+ }
+ println("")
+}
diff --git a/challenge-174/laurent-rosenfeld/tcl/ch-1.tcl b/challenge-174/laurent-rosenfeld/tcl/ch-1.tcl
new file mode 100644
index 0000000000..5c05f567ba
--- /dev/null
+++ b/challenge-174/laurent-rosenfeld/tcl/ch-1.tcl
@@ -0,0 +1,22 @@
+proc is_disarium {num} {
+ set n num
+ set sum 0
+ set i 1
+ set ch 1
+ foreach char [split $num {}] {
+ scan $char %d ch
+ set sum [ expr ($sum + $ch ** $i)]
+ incr i
+ }
+ return [ expr $num == $sum ? 1 : 0]
+}
+set i 0
+set count 0
+while { $count < 19 } {
+ if [ is_disarium $i ] {
+ puts -nonewline "${i} "
+ incr count
+ }
+ incr i
+}
+puts ""