Java/백준알고리즘

백준알고리즘 #2581 소수 java

Sehyeok20 2020. 3. 30. 03:03
반응형

백준알고리즘 #2581 소수

지난번 소수찾기 문제와 비슷한 문제이나 조건이 조금 추가되었다.

M이상 N 이하의 소수를 찾고, 그 합과 최솟값을 출력하는 문제이다.

먼저 M과 N의 값을 입력받은 후, M부터 N까지 각각의 수를 소수인지 아닌지 판명하기 위해 for문을 2번 중첩시켜 사용하였다. 앞서 했던 소수찾기 문제처럼 div라는 변수를 추가해 1부터 차례대로 나누었을 때 나머지가 0이라면 div값을 증가시키는 방법으로 소수를 판별했고, div == 2 가 성립된다면 sum에 그 값을 차례대로 더하도록 하였다.

최솟값은 min이라는 변수에 입력받은 수 중 가장 큰 수인 N 값으로 초기화 한 다음, div==2를 만족하는 수 중에서 min보다 작은 값이라면 min에 대입하는 방식으로 찾았다.

아래 코드에 count변수는 마지막 조건인 "M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다."를 만족시키기 위해 div ==2 를 만족한다면 count가 차례로 증가하게 두었고 count가 0일 경우만 -1을 출력하고 0이 아니라면 정상적으로 sum과 min을 출력하도록 한다.

백준알고리즘 #2581 소수 코드

반응형