
์์์  ์๋ ์ซ์๊ฐ ๊ณ์๋์ง ์๊ณ ์ ํ๊ฐ์ธ ์์๋ฅผ ์ ํ์์๋ผ๊ณ ํฉ๋๋ค. ๋ถ์๋ฅผ ์์๋ก ๊ณ ์น ๋ ์ ํ์์๋ก ๋ํ๋ผ ์ ์๋ ๋ถ์์ธ์ง ํ๋ณํ๋ ค๊ณ ํฉ๋๋ค. ์ ํ์์๊ฐ ๋๊ธฐ ์ํ ๋ถ์์ ์กฐ๊ฑด์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๊ธฐ์ฝ๋ถ์๋ก ๋ํ๋ด์์ ๋, ๋ถ๋ชจ์ ์์ธ์๊ฐ 2์ 5๋ง ์กด์ฌํด์ผ ํฉ๋๋ค.
๋ ์ ์ a์ b๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, a/b๊ฐ ์ ํ์์์ด๋ฉด 1์, ๋ฌดํ์์๋ผ๋ฉด 2๋ฅผ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
a, b๋ ์ ์a โค 1,000b โค 1,000| a | b | result | 
|---|---|---|
| 7 | 20 | 1 | 
| 11 | 22 | 1 | 
| 12 | 21 | 2 | 
์ ์ถ๋ ฅ ์ #1
์ ์ถ๋ ฅ ์ #2
์ ์ถ๋ ฅ ์ #3
๋ถ์์ ๋ถ๋ชจ์ ์ต๋๊ณต์ฝ์๋ก ์ฝ๋ถํ๋ฉด ๊ธฐ์ฝ๋ถ์๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
์ ์๋ ์ ํ์์๋ก ๋ถ๋ฅํฉ๋๋ค.
function solution(a, b) {
    if(a%b === 0) return 1
    const max = Math.max(a,b)
    let commonFactor = 1
    const prime = []
    // ์ต๋๊ณต์ฝ์
    for(let i = 2 ; i <= (max/2)<<0; i++) {
        if(a%i === 0 && b%i === 0) commonFactor=i
    }
    // ์ฝ์ 
    for(let i = 2; i <= b/commonFactor ; i++) {
        (b/commonFactor)%i === 0 ? prime.push(i) : null 
    }
    return primeList(prime).filter(a => a !== 2 && a !== 5).length ? 2 : 1
}
// ์์ธ์๋ฅผ ๊ตฌํ๋ ํจ์
function primeList(num) {
    const list = []
    let flag = true
    for(let i = 0 ; i < num.length ; i ++) {
        for(let j = 2 ; j < num[i]; j++) {
            // ์์ธ์๊ฐ ์๋๋ผ๋ฉด
            if(num[i]%j === 0) {
                flag = false
                break
            }
        }
        if(flag) list.push(num[i])
    }
    
    return list
}