염딩코

백준 2581번 c++ 문제 풀이 본문

알고리즘 PS/C++

백준 2581번 c++ 문제 풀이

johnyeom 2022. 2. 24. 18:44

[문제] & [결과]

[해설]

이 문제는 두 수를 입력받고 그 두 수 사이에서 소수를 골라서 소수들의 합과 소수들의 최솟값을 구하는 문제이다.

아래의 코드의 메커니즘은 이렇다.

먼저 두 수를 입력받으면 두 수 사이에서 반복문을 시행한다. 이중반복문을 이용하여 i 변수를 j 변수로 나눠서 나머지가 0이라면

cnt값을 증가시켜준다. 이유는 간단하다. 소수는 나누어서 나머지가 0인 수가 자기자신 밖에 없기 때문이다.

1은 기본적으로 소수가 아니기 때문에 제외시켰다.

그래서 j도 2부터 시작하는 것이다. 2부터 시작했기 때문에 cnt가 1일 때, sum 변수에 값들을 더해준다.

그리고 이전에 초기화해놓았던 min 변수와 비교하면서 min보다 더 작은 수라면 min변수를 계속 업데이트 시켜준다.

그렇게 sum이 만약 0이라면 -1을 출력하고 아니라면 최솟값과 합을 출력하면 된다.

'알고리즘 PS > C++' 카테고리의 다른 글

백준 25501번 c++ 풀이  (0) 2023.04.28
백준 27433번 c++ 풀이  (0) 2023.04.28
백준 2501번 c++ 문제 풀이  (0) 2022.02.24
백준 2576번 c++ 문제 풀이  (0) 2022.02.23
백준 10995번 c++ 문제 풀이  (0) 2022.02.23