백준 2581 - 소수(파이썬)

박진우·2022년 9월 17일
0

알고리즘

목록 보기
28/89
post-thumbnail
post-custom-banner

💡 백준 2581

◽ 문제




◽ 입력 & 출력





◽ 풀이

  • 백준 1978 - 소수 찾기와 비슷한 문제이다. 다른점은 소수를 구한다음에 최솟값합계를 구해야한다는 점이다.

  • 4번째줄: 소수를 저장할 리스트를 빈 리스트로 초기화선언한다.

  • 7번째줄첫 번째 for문: M이상 N이하의 범위로 설정하고, 소수를 체크할 cnt를 0으로 초기화한다. 1이면 소수가 아니기 때문에 제외해주었다.

이 때 cntfor문안에서 0으로 초기화 해야한다 밖에서 하게되면 밑에 줄에서 "cnt+=1"누적을 하기 때문에 계속 누적된 cnt가 출력되고 소수리스트에 아무것도 들어가지 않기 때문이다.

  • 12번째 줄 두 번째 for문: 2부터 num-1까지 나눈 몫이 0이면 소수가 아니기 때문에 cnt가 증가하고 for문을 빠져나온다.

  • 16번째 줄: cnt == 0 이면 소수 이기 때문에 append()함수 로 소수리스트 sosu에 추가해준다.


◽ 소수가 되는 조건

소수n은 다음과 같은 조건을 가지고 있다.

소수n을 2부터 n까지 나누었을 때 나머지가 0이 나오지x (단 n 본인은 제외함)

  • 먼저 내가 입력했던 60을 입력해보면 애초에 시작 요소인 2부터 나머지가 0 즉 소수가 아니다.
  • 그 다음 숫자인 61을 입력해보면 자기 자신인 61을 제외하고는 나누어 떨어지가 없는 소수이다.

post-custom-banner

0개의 댓글