34 lines
616 B
Text
34 lines
616 B
Text
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!("{}", " ")
|
|
}
|