본문 바로가기
스크래치/스크래치 팁

2. 행렬에서 소수만 남기기

by 할거없네 2018. 6. 12.

지난 시간에서 배수를 지웠다면, 이제 숫자들 중에서 자기자신의 수를 제외한 배수들을 지우면서 소수를 남기는 프로젝트를 만들어 봅니다.

먼저 배수들을 제거할 때 자기자신이 아닌 숫자의 배수를 지워야 하는데요,

여기에 조건으로 '자기자신이 아닐 경우'를 추가해주면 됩니다.






이렇게 하면 만약 '2'를 입력할 경우 2를 제외한 2의 배수들을 리스트에서 모두 삭제합니다.

이제 소수를 남길 차례입니다. 먼저 1을 제외하고 2부터 시작해서 모든 소수들을 차례대로 배수를 지우도록 합니다. 

소수들은 1을 제외한 2부터 차례대로 1씩 증가하면서 자신을 제외한 배수를 삭제하고, 그다음으로 넘어가는 식으로 구현하면 됩니다.

그러면

이런 모양이 나오겠네요!

글로 설명해주자면, 2번째 값(2)부터 배수를 지우고 그 다음에는 3번째 값(3)에서 배수를 지우고.. 그다음은 2의 배수인 4가 삭제되어 5부터 배수를 지우고를 반복하여 k값이 100이내의 최대 소수보다 커지면 반복이 자동으로 종료가 됩니다.


이것을 실행 하면


이처럼 소수만 남게 됩니다.


댓글