728x90
320x100
package chap02;
//1000 이하의 소수를 나열 (버전3)
public class PrimeNumber3 {
public static void main(String[] args) {
int counter = 0; //곱셈과 나눗셈의 횟수
int ptr = 0; //찾은 소수의 개수
int[] prime = new int[500]; //소수를 저정하는 배열
prime[ptr++] = 2; //2는 소수임.
prime[ptr++] = 3; //3는 소수임.
for (int n = 5; n <= 1000; n += 2){ //조사대상은 홀수만
boolean flag = false;
for(int i = 1; prime[i] * prime[i] <= n; i++){
counter += 2;
if (n % prime[i] == 0){ //나누어떨어지면 소수가 아님
flag = true;
break; // 더이상의 반복은 불필요
}
}
if (!flag){ //마지막까지 나누어떨어지지 않음
prime[ptr++] = n; //소수를 배열로 저장
counter++;
}
}
for (int i = 0; i < ptr; i++) //찾은 ptr개의 소수를 출력
System.out.println(prime[i]);
System.out.println("곱셈과 나눗셈을 수행한 횟수 : " + counter);
}
}
소수의 정의
- 자신과 1 이외의 어떤 정수로도 나누어떨어지지 않는 정수.
- 2부터 n-1까지 어떤 정수로도 나누어 떨어지지 않음.
- n의 제곱근 이하의 어떤 소수로도 나누어떨어지지 않음.
728x90
320x100
'💻 하나씩 차곡차곡 > 자료구조 & 알고리즘(JAVA)' 카테고리의 다른 글
향상된 for문 (for-each문) (chap02/ArraySumForIn) (0) | 2022.10.24 |
---|---|
배열 복사하기 (chap02/CloneArray) (0) | 2022.10.23 |
입력 받은 10진수를 2진수~36진수로 기수 변환하여 출력하기 (chap02/CardConv) (0) | 2022.10.21 |
배열요소를 역순으로 복사하기 (chap02/Practice05) (0) | 2022.10.20 |
배열요소를 복사하기 (chap02/Practice04) (0) | 2022.10.19 |
뚜루리님의
글이 좋았다면 응원을 보내주세요!
이 글이 도움이 됐다면, 응원 댓글을 써보세요. 블로거에게 지급되는 응원금은 새로운 창작의 큰 힘이 됩니다.
응원 댓글은 만 14세 이상 카카오계정 이용자라면 누구나 편하게 작성, 결제할 수 있습니다.
글 본문, 댓글 목록 등을 통해 응원한 팬과 응원 댓글, 응원금을 강조해 보여줍니다.
응원금은 앱에서는 인앱결제, 웹에서는 카카오페이 및 신용카드로 결제할 수 있습니다.