본문 바로가기

Study/BEAKJOON Algorithm

10단계 수학 2

1. 소수 구하기 (문제 번호 : 1929) 

-> 에라토스테네스의 체를 이용하여 소수 구하기

 

*에라토스테네스의 체 

소수인 2를 제외한 2의 배수를 지우고 남은 수 중 또 다른 소수인 3을 제외한 3의 배수를 지워가면서 남는 소수를 구하는 방법

 

문제 :

M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오.

 

입력 :

첫째 줄에 자연수 M과 N이 빈칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000)

 

출력 :

한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다.

 

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);

		int m = scan.nextInt();
		int n = scan.nextInt();
		
		int[] num = new int[n + 1];
		
		for (int i = 2; i <= n; i++) {		// 2의 배수부터 ~ 
			for (int j = 2; i * j <= n; j++) {	// 2, 3, 5 등을 제외하기 위해 j = 2;
				num[i * j] = 1;
			}
		}
		for (int i = m; i <= n; i++) {
			if(num[i] != 1 && i != 1) {
				System.out.println(i);
			}
		}
		
	}
}

 

2. 직각삼각형 (문제 번호 : 4153)

 

문제 :

과거 이집트인들은 각 변들의 길이가 3, 4, 5인 삼각형이 직각 삼각형인 것을 알아냈다. 주어진 세 변의 길이로 삼각형이 직각인지 아닌지 구분하시오.

 

입력 :

입력은 여러개의 테스트 케이스로 주어지며 마지막 줄에는 0 0 0이 입력된다. 각 테스트 케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다.

 

출력 :

각 입력에 대해 직각 삼각형이 맞다면 "right", 아니라면 "wrong"을 출력한다.

 

import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int temp;
		
		while (true) {
			int a = scan.nextInt();
			int b = scan.nextInt();
			int c = scan.nextInt();
			int[] array = { a, b, c };

			for (int i = 0; i < array.length; i++) {	// a, b, c를 정렬하기 위한 for문
				for (int j = i+1; j < array.length; j++) {
					if(array[i] > array[j]) {
						temp = array[i];
						array[i] = array[j];
						array[j] = temp;
					}
				}
			}

			if(a == 0 && b == 0 && c == 0){
				break;
			}else if (Math.pow(array[0], 2) + Math.pow(array[1], 2) == Math.pow(array[2], 2)) {
				System.out.println("right");
			} else {
				System.out.println("wrong");
			}
		}
	}
}

-> 직각삼각형 문제를 풀 때 주의할 점은 a, b, c 순으로 길이가 길다는 정의되어있지 않다. a가 가장 긴 변일 수도 있고 b, c도 마찬가지로 가장 긴 변이 될 수도 있다.   

'Study > BEAKJOON Algorithm' 카테고리의 다른 글

13단계 브루트 포스  (0) 2020.01.21
11단계 재귀  (0) 2020.01.21
9단계 수학 1  (0) 2020.01.07
7단계 문자열  (0) 2020.01.03
6단계 함수  (0) 2019.12.30