본문 바로가기

AWS CLOUD FRAMEWORK/Java

[Day08] Ex03

package function;

import java.util.Arrays;

public class Ex03 {
	public static void main(String[] args) {
		// 1) 전달받은 정수가 primeNumber인지 아닌지 판별하는 함수를 작성하세요
		System.out.printf("%d는 소수인가 : %s\n", 3, isPrimeNumber(3));
		System.out.printf("%d는 소수인가 : %s\n", 4, isPrimeNumber(4));
		
		// 2) 두 정수를 전달받아서, 두 정수 사이의 primeNumber로 구성된 배열을 반환하는 함수를 작성하세요
		int[] arr = getPrimeNumberArray(1, 100);
		
		// 3) 1부터 1000사이의 소수로 구성된 정수 배열을 출력하세요
		System.out.println(Arrays.toString(arr));
		
		// 4) 1부터 100사이의 소수는 모두 몇개인가?
		int count = getPrimeNumberArray(1, 100).length;
		System.out.printf("1부터 100사이의 소수는 %d개입니다\n", count);
		
		// 5) 배열의 내용을 문자열로 변환하여 한 줄당 10개씩 문자열을 만들어서 반환하는 함수
		// 배열을 전달, 문자열을 반환
		String result = getStringFromArray(arr);
		System.out.println(result);
	}
	
	static String getStringFromArray(int[] arr) {
		String str = "";
		for(int i = 0; i < arr.length; i++) {
			str += String.format("%2d", arr[i]);
			str += i % 10 == 9 ? "\n" : ", ";
		}
		str = str.substring(0, str.length() - 2);
		return str;
	}
	
	
	
	static boolean isPrimeNumber(int num) {
		if(num == 1) {
			return false;
		}
		for(int i = 2; i < num; i++) {
			if(num % i == 0) {
				return false;
			}
		}
		return true;
	}
	
	static int[] getPrimeNumberArray(int from, int to) {
		int[] arr = null;
		int cnt = 0;
		for(int i = from; i < to; i++) {
			if(isPrimeNumber(i)) {
				cnt++;
			}
		}
		arr = new int[cnt];
		int index = 0;
		for(int i = from; i < to; i++) {
			if(isPrimeNumber(i)) {
				arr[index] = i;
				index += 1;
			}
		}
		return arr;
	}
	
	
}

'AWS CLOUD FRAMEWORK > Java' 카테고리의 다른 글

[Day08] MethodOverloading  (0) 2023.04.05
[Day08] Ex04  (0) 2023.04.05
[Day08] Ex02  (0) 2023.04.05
[Day08] Ex01  (0) 2023.04.05
[Day07] Quiz3  (0) 2023.04.05