ββλ°±μ€ 4673 javascript (node.js) νμ΄
ν¨μ - (2)
π‘λ¬Έμ
μ ν λλ²λ 1949λ μΈλ μνμ D.R. Kaprekarκ° μ΄λ¦ λΆμλ€. μμ μ μ nμ λν΄μ d(n)μ nκ³Ό nμ κ° μ리μλ₯Ό λνλ ν¨μλΌκ³ μ μνμ. μλ₯Ό λ€μ΄, d(75) = 75+7+5 = 87μ΄λ€.
μμ μ μ nμ΄ μ£Όμ΄μ‘μ λ, μ΄ μλ₯Ό μμν΄μ n, d(n), d(d(n)), d(d(d(n))), ...κ³Ό κ°μ 무ν μμ΄μ λ§λ€ μ μλ€.
μλ₯Ό λ€μ΄, 33μΌλ‘ μμνλ€λ©΄ λ€μ μλ 33 + 3 + 3 = 39μ΄κ³ , κ·Έ λ€μ μλ 39 + 3 + 9 = 51, λ€μ μλ 51 + 5 + 1 = 57μ΄λ€. μ΄λ°μμΌλ‘ λ€μκ³Ό κ°μ μμ΄μ λ§λ€ μ μλ€.
33, 39, 51, 57, 69, 84, 96, 111, 114, 120, 123, 129, 141, ...
nμ d(n)μ μμ±μλΌκ³ νλ€. μμ μμ΄μμ 33μ 39μ μμ±μμ΄κ³ , 39λ 51μ μμ±μ, 51μ 57μ μμ±μμ΄λ€. μμ±μκ° ν κ°λ³΄λ€ λ§μ κ²½μ°λ μλ€. μλ₯Ό λ€μ΄, 101μ μμ±μκ° 2κ°(91κ³Ό 100) μλ€.
μμ±μκ° μλ μ«μλ₯Ό μ ν λλ²λΌκ³ νλ€. 100λ³΄λ€ μμ μ ν λλ²λ μ΄ 13κ°κ° μλ€. 1, 3, 5, 7, 9, 20, 31, 42, 53, 64, 75, 86, 97
10000λ³΄λ€ μκ±°λ κ°μ μ ν λλ²λ₯Ό ν μ€μ νλμ© μΆλ ₯νλ νλ‘κ·Έλ¨μ μμ±νμμ€.
πμ λ ₯
μ λ ₯μ μλ€.
πμΆλ ₯
10,000λ³΄λ€ μκ±°λ κ°μ μ ν λλ²λ₯Ό ν μ€μ νλμ© μ¦κ°νλ μμλ‘ μΆλ ₯νλ€.
μμ μ λ ₯
μμ μΆλ ₯
1
3
5
7
9
20
31
42
53
64
|
| <-- a lot more numbers
|
9903
9914
9925
9927
9938
9949
9960
9971
9982
9993
< μ½λ >
<λ¬Έμ μ΄ν΄>
μ리μμ λ°λΌ d(n)μ ꡬν μ μλ€.
d(n)μ ꡬνκ³ λ°°μ΄λ‘ μ μ₯ν νμ (μμμ λ°°μ΄μ d(n)κ°μ pushνλ€.)
i=1λΆν° 10000κΉμ§ d(n)μ μλ€λ©΄ μΆλ ₯νλ©΄ λλ€.
(μ¦, λ§μ½ i=42μ΄κ³ d(n)κ°μ΄ μ μ₯λμ΄μλ λ°°μ΄μ 42κ° μμΌλ―λ‘ μΆλ ₯ = 맀μ§λλ²)
** λ°°μ΄μ ν΄λΉ μΈμκ° μλ€λ κ²μ μ΄λ»κ² ꡬν κΉ?
λ°©λ² 1/ if( ! arr.includes(i))
λ°©λ² 2/ if(arr.indexof(i) === -1)
** d(n)μ κ³μ°.
nμ΄ νμ리μλ©΄? d(n) = n+n = 2n
nμ΄ λμ리μλ©΄? d(n) = n+μ+μΌ
nμ΄ μΈμ리μλ©΄? d(n) = n+λ°±+μ+μΌ
nμ΄ λ€μ리μλ©΄? d(n) = n+μ²+λ°±+μ+μΌ
nμ΄ λ€μ―μ리μ(=10000)λ©΄? d(n) = 10000+1 = 10001
** μ리 κ³μ°μ μ΄λ»κ² ν λ?
<λ°©λ²1> μ«μ ν¬κΈ°λ‘ λλ
0<n<10
10<=n<100
100<=n<1000
1000<=n<10000
n=10000
d(n)μ ꡬνλ ν¨μλ₯Ό λ§λ€μ΄μ arrayμ pushνκ³ ,
forλ¬ΈμΌλ‘ includes(i)λ‘ μ νλλ²λ₯Ό μ°Ύμ.
function selfNumber(){
let Dn;
let array = [];
for(let n = 0; n < 10000; n++){
if(0 < n && n < 10){ // n μ΄ νμ리 μΌ λ
Dn = 2*n;
}else if(10 <= n && n < 100){ // nμ΄ λμλ¦¬μΌ λ
Dn = n + (Math.floor(n / 10)) + (n % 10);
}else if(100 <= n && n < 1000){ // nμ΄ μΈμ리 μΌ λ
Dn = n + (Math.floor(n / 100)) + (Math.floor((n % 100) / 10)) + (n % 10);
}else if(1000 <= n && n < 10000){ // nμ΄ λ€μλ¦¬μΌ λ
Dn = n + (Math.floor(n / 1000)) + (Math.floor((n % 1000) / 100)) + (Math.floor((n % 100) / 10) ) + (n % 10);
}else{ // n = 10000
Dn = 10001;
}
array.push(Dn);
}
for(let i = 1; i <= 10000; i++){
if(!array.includes(i)){
console.log(i);
}
}
}
selfNumber();
+) λ€λ₯Έ λ°©λ²μ΄ μμκΉ μΆμ΄ μΆκ°ν¨
<λ°©λ²2> ** https://velog.io/@dragoochoλμ ν¬μ€ν μ μ°Έμ‘°νμμ΅λλ€.
let arr = [];
let answer = [];
for (let i = 1; i <= 10000; i++) {
let N = 0;
let stringNumber = String(i);
for (let j = 0; j < stringNumber.length; j++) {
N += Number(stringNumber[j]);
}
let nNum = i + N;
arr.push(nNum);
}
for (let i = 1; i <= 10000; i++) {
if (arr.indexOf(i) === -1) {
answer += i + "\n";
}
}
console.log(answer);
Nμ κ° μ리μ μλ‘ νμ¬
Nμ string(i)λ₯Ό ν ν stringμ jλ²μ§Έ μ리λ₯Ό λμ νμ¬ λν¨.
d(n)κ°μ κ·Έ μ+κ°μ리μμ ν©μ΄λ―λ‘ i+Nμ ν ν d(n)κ°μ arrμ pushν¨.