🀍 은지log 🀍

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€:Javascript] μˆœμ„œμŒμ˜ 개수 λ³Έλ¬Έ

🌈 ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€:Javascript] μˆœμ„œμŒμ˜ 개수

Eun_zii 2024. 2. 5. 17:15

ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ Lv.0

- μˆœμ„œμŒμ˜ κ°œμˆ˜

 

πŸ’š λ¬Έμ œμ„€λͺ…

  • μˆœμ„œμŒμ΄λž€ 두 개의 숫자λ₯Ό μˆœμ„œλ₯Ό μ •ν•˜μ—¬ 짝지어 λ‚˜νƒ€λ‚Έ 쌍으둜 (a, b)둜 ν‘œκΈ°ν•©λ‹ˆλ‹€. μžμ—°μˆ˜ n이 λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ 두 숫자의 곱이 n인 μžμ—°μˆ˜ μˆœμ„œμŒμ˜ 개수λ₯Ό returnν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄μ£Όμ„Έμš”.

 

πŸ’š μ œν•œμ‘°κ±΄

  • 1 ≤ n ≤ 1,000,000

 

πŸ’š 풀이

function solution(n) {
    let answer = 0;
    for( let i = 2; i <= n; i++ ) {
        if( n % i === 0) {
            answer++
        }
    }
    return answer +1
}

 

βœ… 

λ¬Έμ œλΆ€ν„° 이해가 μž˜μ•ˆλ˜μ—ˆλ‹€πŸ₯² κ²€μƒ‰ν•΄λ³΄λ‹ˆ μ•½μˆ˜μ˜ 개수λ₯Ό κ΅¬ν•΄μ•Όν•˜λŠ” 문제라고 ν•œλ‹€.

πŸ–‡οΈ μ•½μˆ˜λ₯Ό κ΅¬ν•˜λŠ” 법

function μ•½μˆ˜μ˜κ°œμˆ˜κ΅¬ν•˜κΈ°(n) {
    let μ•½μˆ˜μ˜κ°œμˆ˜ = 0;
    
    for (let i = 1; i <= n; i++) {
        if (n % i === 0) {
            μ•½μˆ˜μ˜κ°œμˆ˜++;
        }
    }
    
    return μ•½μˆ˜μ˜κ°œμˆ˜;
}

μœ„ λ°©λ²•μœΌλ‘œ μ μš©ν–ˆλŠ”λ° μ‹€νŒ¨ν•΄μ„œ ν•΄λ‹΅ μ°Έκ³ ν–ˆλ‹€

πŸ’‘

answer λ³€μˆ˜λ‘œ μ΄ˆκΈ°κ°’μ„ 0으둜 μ„€μ • ν›„ 

forλ¬Έ iλ₯Ό 2λΆ€ν„° nκΉŒμ§€ μ¦κ°€μ‹œν‚€λ©΄μ„œ λ°˜λ³΅ν•œλ‹€.

if 문은 ν˜„μž¬μ˜ iκ°€ n 으둜 λ‚˜λˆ„μ–΄ λ–¨μ–΄μ§€λŠ”μ§€λ₯Ό 확인

즉, n을 i둜 λ‚˜λˆ΄μ„ λ•Œ λ‚˜λ¨Έμ§€κ°€ 0이 λ˜λŠ” 경우 λ‚˜λˆ„μ–΄ 떨어진닀면, answerκ°€ 1 증가 μ΄λŠ” ν˜„μž¬μ˜ iκ°€ n의 μ•½μˆ˜μž„μ„ 의미

μ΅œμ’…μ μœΌλ‘œ answer + 1이 λ°˜ν™˜λ˜μ–΄ n의 μ•½μˆ˜μ˜ 개수λ₯Ό λ°˜ν™˜ ν•œλ‹€.

 
728x90