์์์ ์๋ ์ซ์๊ฐ ๊ณ์๋์ง ์๊ณ ์ ํ๊ฐ์ธ ์์๋ฅผ ์ ํ์์๋ผ๊ณ ํฉ๋๋ค. ๋ถ์๋ฅผ ์์๋ก ๊ณ ์น ๋ ์ ํ์์๋ก ๋ํ๋ผ ์ ์๋ ๋ถ์์ธ์ง ํ๋ณํ๋ ค๊ณ ํฉ๋๋ค. ์ ํ์์๊ฐ ๋๊ธฐ ์ํ ๋ถ์์ ์กฐ๊ฑด์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๊ธฐ์ฝ๋ถ์๋ก ๋ํ๋ด์์ ๋, ๋ถ๋ชจ์ ์์ธ์๊ฐ 2์ 5๋ง ์กด์ฌํด์ผ ํฉ๋๋ค.
๋ ์ ์ a
์ b
๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, a
/b
๊ฐ ์ ํ์์์ด๋ฉด 1์, ๋ฌดํ์์๋ผ๋ฉด 2๋ฅผ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
a
, b
๋ ์ ์a
โค 1,000b
โค 1,000a | 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
}