본문 바로가기

Java로 배우는 자료구조

제1-1강 변수, 배열, 반복문 (5/7)

Code10

public class Code10 {
	public static void main(String[] args) {
		for (int n = 2; n <= 10000; n++) {
			// 2, 3, ..., sqrt(n)
			
			boolean isPrime = true;
			for (int i = 2; i*i <= n && isPrime; i++) {
				if (n % i == 0) 
					isPrime = false;
			}
			if (isPrime)
				System.out.println(n);
		}
	}
}

 

  • 1~10000 사이의 모든 소수를 찾아 출력하는 프로그램이다.
  • 각기의 정수 n에 대하여 for문을 돌며 2보다 크거나 같은 약수가 있는지 확인한다. 하나라도 약수가 있다면 소수가 아니므로 더이상 검사할 필요가 없다.

 

Code11

import java.util.Scanner;

public class Code11 {
	public static void main(String[] args) {
		Scanner kb = new Scanner(System.in);
		int n = kb.nextInt();
		int [] data = new int [n];
		
		for (int i =0; i < n; i++)
			data[i] = kb.nextInt();
		kb.close();
		
		int count = 0;
		for (int i = 0; i < n; i++) {
			for (int j = i + 1; j < n; j++) { // i < j
				if (data[i] == data[j])
					count++;
			}
		}
		System.out.println(count);
	}
}

 

  • 사용자로부터 정수의 개수 n을 입력받아라. 이어서 n개의 정수를 입력받아 순서대로 저장하라. 그다음 중복된 정수 쌍의 개수를 세어 출력하라.