기억보다 기록을

[JAVA] 1-100,000사이의 모든 소수를 찾아 출력하는 프로그램 본문

CS/Data Structure

[JAVA] 1-100,000사이의 모든 소수를 찾아 출력하는 프로그램

juyeong 2022. 2. 19. 12:48
반응형

Question :

1-100,000 사이의 모든 소수를 찾아 출력하는 코드 작성하기

(소수: 1과 자기자신만을 약수로 갖는 자연수) 

 

 

Code : 

public class Code10 {

	public static void main(String[] args) {
		
		for(int n = 2; n<=100000 ; n++) {
			boolean isPrime = true; 
			for (int i = 2; i*i <= n && isPrime; i++) //8
				if (n % i == 0) 
					isPrime = false; //10
			if (isPrime)
				System.out.println(n);
			
		}
	}
}

Line8 : n/2까지 돌아도 되지만 굳이 약수를 발견했는데 n/2까지 돌 필요가 없으므로 root(n)의 값까지 돌린다. (square root)

Line10 : 정수로 나누어 떨어지면 소수가 아니기 때문에 false가 된다. 

 

 

Output : 

결과의 상단부만 캡쳐

 

반응형

'CS > Data Structure' 카테고리의 다른 글

알고리즘 인터뷰 개념 추상화  (0) 2023.10.08
[JAVA] 중복된 정수쌍 카운트하기  (0) 2022.02.19
[JAVA] 순환 시프트  (0) 2022.02.19