HiDevelop

소수 만들기 본문

코딩 연습!

소수 만들기

꽃달린감나무 2022. 1. 27. 15:08
728x90
  • 소수 만들기
문제 설명

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

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

 

입출력 예           nums                                                                                                      result
[1,2,3,4] 1
class Solution {
    public int solution(int[] nums) {
        int answer = 0;
        
        //n개의 정수에서 3개의 정수를 뽑아 더하기
        for(int i = 0 ; i < nums.length; i++){
            for(int j = i+1; j< nums.length; j++){
                for(int k = j+1; k < nums.length; k++){
                    int num = nums[i]+ nums[j] + nums[k];
                    if(distinguish(num) == true)
                        answer++;
                }
            }
        }
        return answer;
    }
    //소수인지 판별하는 함수
    public boolean distinguish(int num){
        boolean check = true;
        for(int i =2; i< num; i++){
            if( num % i == 0){ 
//자기자신을 제외한 자신의 이하의 숫자에서 나머지 연산이 0이 나오지 않으면 소수x
                check = false;
                break;
            }
        }
        return check;
    }
}
삼중 반복문을 통해 배열 nums에 있는 정수 3개를 뽑아 더할 수 있게 만들었습니다.
소수인지 판별하는 distinguish 메소드를 만들어 더해진 수가 소수인지 판별할 수 있게 하였습니다.

 

728x90

'코딩 연습!' 카테고리의 다른 글

이진 탐색 - 백준 수 찾기  (0) 2022.04.18
약수의 개수의 덧셈  (0) 2022.01.27
양수 정수 제곱 판별하기  (0) 2022.01.18