소수 만들기(javascript)

weffa·2022년 3월 17일
0

문제 설명

주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요.

제한사항

nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다.
nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다.

입출력 예

numsresult
[1,2,3,4]1
[1,2,7,6,4]4

문제 풀이

function solution(nums) {
  let answer = 0
  let x = []
  for (let i = 0; i < nums.length-2; i++) {
    for (let j = i+1; j < nums.length-1; j++) {
      for (let k = j+1; k < nums.length; k++){
        x.push(nums[i]+nums[j]+nums[k])
      }      
    }
  }
  x = solution1(x)
  return x;
}
function solution1(nums) {
  let answer = nums.length // 소수의 개수
  let x = 0 // nums에서 세 숫자를 더한 값
  for (let i = 0; i < nums.length; i++) {
    for (let j = 2; j < nums[i]; j++){      
      if (nums[i]%j === 0) {
        answer --
        break
      }
    }
  }
  return answer;
}
  1. 3개를 뽑아서 더해준다.

  2. 입력값이 모두 소수라고 가정하고 시작해서 2부터 자기 자신까지 1씩 더해가며 나누었을때 나누어 떨어지면 소수의 개수에서 1씩 빼는 함수를 만들어서 소수의 개수를 세어주는 함수를 만들어서 소수의 개수를 반환한다.

0개의 댓글