-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhw2.js
49 lines (42 loc) · 819 Bytes
/
hw2.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
});
const lines = [];
rl.on('line', (line) => {
lines.push(line);
});
function digitsCount(n) {
if (n === 0) return 1;
let result = 0;
let j = n;
while (j !== 0) {
j = Math.floor(j / 10);
result += 1;
}
return result;
}
function isNarcissistic(n) {
let m = n;
const digits = digitsCount(m);
let sum = 0;
while (m !== 0) {
const num = m % 10;
sum += num ** digits;
m = Math.floor(m / 10);
}
return sum === n;
}
function solve(arr) {
const temp = arr[0].split(' ');
const n = Number(temp[0]);
const m = Number(temp[1]);
for (let i = n; i <= m; i += 1) {
if (isNarcissistic(i)) {
console.log(i);
}
}
}
rl.on('close', () => {
solve(lines);
});