algorithm

6599 ワード

//与えられた数字の3つの数を加算するとき//
//小数であれば、数を求めてみます.//
//配列numsをパラメトリック化するときnumsの数値
//solution関数を完了して、他の3つを選択した場合の小数を返してください.
//小数:自己と1を除く
//制限
//numsに含まれる数字は3個または50個を超えない.
//numsの各要素は、1000未満の自然数であり、重複する数は含まれません.
///I/Oサンプルnumsresult
//#1. [1,2,3,4] 1 =>
//#2. [1,2,7,6,4] 4 =>
///I/O例#1説明
/[1,2,4]を使用して7を作成できます.
///I/O例#2説明
/[1,2,4]を使用して7を作成できます.
//[1,4,6]を使用して11を作成できます.
/[2,4,7]を使用して13を作成できます.
/[4,6,7]を使用して7を作成できます.

solution([1, 2, 7, 6, 4]);

function checkPrimeNumber(num) // 그 숫자가 소수인지 판단하는 코드
{
    // 17  = 1, 17로만 나누어 떨어지는 숫자 소수가 아닌 숫자를 찾자
    for(let i = 2; i < num; i++)
    {
        if(num % i == 0)
        {
            return false;
        }
    }
    return true;
}

function solution(nums) 
{
    let sumNumber = 0;
    let result = 0;
    // 숫자 세개를 골라서 합하는 코드 
    for(let i = 0; i < nums.length; i++)
    {
        for(let j = i + 1; j < nums.length; j++)
        {
            for(let k = j + 1; k < nums.length; k++)
            {
                sumNumber = nums[i] + nums[j] + nums[k];
                if(checkPrimeNumber(sumNumber))
                {
                    result++;
                }
                console.log(sumNumber);
            }
        }
    }    
    console.log(result);
    return result;
}
一度に解きほぐそうとしないで、別々に考えなさい.
一度に1つの関数を入れる