문제
1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요.
소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다.
(1은 소수가 아닙니다.)
제한 조건
n은 2이상 1000000이하의 자연수입니다.
입출력 예
n result
10 4
5 3
입출력 예 설명
입출력 예 #1
1부터 10 사이의 소수는 [2,3,5,7] 4개가 존재하므로 4를 반환
입출력 예 #2
1부터 5 사이의 소수는 [2,3,5] 3개가 존재하므로 3를 반환
*문제의 핵심 포인트
"에라토스테네스의 체"를 이용하면 될 것 같아요.
1에서 100까지의 수를 쓴 후 소수가 아닌 수를 지워가는 방법인데요~
해당하는 2를 소수로 고르면 2의 배수는 모두 지우고
3을 고르고 또 3의 배수를 지워가는 방식입니다.
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100
빨간 수들이 소수입니다~
'JAVA > 조건문 문제' 카테고리의 다른 글
나이를 입력하여 나이에 따라 입장이 제한됩니다. (0) | 2018.06.28 |
---|---|
if문으로 369 박수게임을 만들어보자. (0) | 2018.06.28 |
if문(환율 계산)하기. (0) | 2018.06.16 |
if문(십의 자리와 1의 자리가 같은지 판별하기) (1) | 2018.06.16 |
카드게임 만들기 (0) | 2018.06.16 |