diff options
| -rw-r--r-- | challenge-174/laurent-rosenfeld/d/ch-1.d | 27 | ||||
| -rw-r--r-- | challenge-174/laurent-rosenfeld/dart/ch-1.dart | 25 | ||||
| -rw-r--r-- | challenge-174/laurent-rosenfeld/go/ch-1.go | 32 | ||||
| -rw-r--r-- | challenge-174/laurent-rosenfeld/java/DisariumNumbers.java | 29 | ||||
| -rw-r--r-- | challenge-174/laurent-rosenfeld/javascript/ch-1.js | 20 | ||||
| -rw-r--r-- | challenge-174/laurent-rosenfeld/kotlin/ch-1.kt | 27 | ||||
| -rw-r--r-- | challenge-174/laurent-rosenfeld/nim/ch-1.nim | 18 | ||||
| -rw-r--r-- | challenge-174/laurent-rosenfeld/ring/ch-1.ring | 25 | ||||
| -rw-r--r-- | challenge-174/laurent-rosenfeld/ruby/ch-1.rb | 19 | ||||
| -rw-r--r-- | challenge-174/laurent-rosenfeld/rust/ch-1.rs | 31 | ||||
| -rw-r--r-- | challenge-174/laurent-rosenfeld/scala/ch-1.scala | 27 | ||||
| -rw-r--r-- | challenge-174/laurent-rosenfeld/tcl/ch-1.tcl | 22 |
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 "" |
