[Algorithm] 43 week(11.21 ~ 11.27) 1/3

Dev_min·2022년 11월 21일
0

algorithm

목록 보기
138/157

소수찾기

function solution(numbers) {
    const result = [];
    const splitNumbers = numbers.split('');
    
    const findPrime = (numberArray, add) => {
        if(numberArray.length > 0){
            
            numberArray.forEach((number, index) => {
                const inputNumber = `${add}${number}`;

                const copyNumbers = [...numberArray]
                copyNumbers.splice(index, 1);

                if(!result.includes(Number(inputNumber)) && isPrime(Number(inputNumber))){
                   result.push(Number(inputNumber));
                };
            
                findPrime(copyNumbers, inputNumber);
            })
        }
    }

    findPrime(splitNumbers, 0);   
    
    return result.length;
}

const isPrime = (number) => {
    if(number <= 1) return false;

    for(let i = 2; i <= Math.sqrt(number); i++){
        if(number % i === 0){
            return false;
        }
    }
    
    return true;
}
profile
TIL record

0개의 댓글