JAVA/알고리즘 공부

[JAVA] 1~100까지 소수 구하기

soyeonisgood 2022. 7. 16. 13:59

- 소수는 1과 자기자신만 약수로 가짐. 1과 자기자신을 제외한 수로 나눴을 때, 나머지가 존재하면 소수가 아님.

- 1은 소수가 아니므로 2~100까지의 숫자 for(i)문으로 생성.

- 생성된 숫자를 2부터 자기자신-1으로 나눈 나머지를 확인하는 for(j)문 선언. 한 번이라도 나눠지면 소수가 아니므로 break.

- 만약 2~자기자신-1으로 나눠지지 않는다면, 소수이므로 cnt변수는 그대로 0.

- 한줄에 출력되는 소수의 갯수 카운트하는 line변수는 10개가 되면 0으로 다시 초기화.

- 소수의 갯수 합계를 카운트하는 num변수

 

 

package ExamQuiz;

public class ForExam05 {

	public static void main(String[] args) {
		// 0~100까지 소수를 한줄에 10개씩 출력

		int cnt, line, n;
		cnt = line = n = 0;
	

		for (int i = 2; i <= 100; i++) {
				for (int j=2; j<i; j++) {
					if (i % j != 0) {
						break;
					} else {
						cnt++;
					}
				}
			if(cnt==0) {
				line++;
				n++;
				System.out.print(i+"\t");
			}
			if(line==10) {
				System.out.println();
				line=0;
			}
			cnt=0;
		}
		
		System.out.print("\n소수의 갯수: "+n);

	}

}