소수란? 1과 자기자신 만을 약수로 가지는수
JAVA 코드로 parameter로 들어온 값이 소수인지 확인 하는 코드를 구현해 보자
boolean isPrime(int number){
for(int i = 2; i*i <= number; i++){
if(number % i == 0) return false;
}
return true;
}
JAVA 코드로 1000까지의 양의 정수 중 소수를 찾는 코드를 구현해 보자
ArrayList<Integer> prime = new ArrayList<>(); //찾은 소수들 prime.add(2); prime.add(3); for(int n = 5; n <= 1000; n++){ boolean flag = false; for(int i = 0; prime.get(i)*prime.get(i) <= n; i++){ if(n%prime.get(i) ==0 ){ flag = true; break; } } if(!flag) prime.add(n); }
고려해야할 사항
윤년
4로 나누어 떨어지는 해는 윤년, 그 밖의 해는 평년으로 한다.
4로 나누어 떨어지지만 100으로도 나누어 떨어지는 해는 평년으로 한다.
단, 400으로 나누어 떨어지는 해는 윤년으로 한다.(예: 2000년, 2400년)
JAVA 코드로 그 해의 경과일수를 출력하는 메소드를 구현해보자
static int[][] mdays ={
{31,29,31,30,31,30,31,31,30,31,30,31},
{31,28,31,30,31,30,31,31,30,31,30,31}
};
static int isLeap(int year){ // true -> 1
return (year % 4 == 0 && year % 100 != 0 || year % 400 == 0 ) ? 1 : 0;
}
static int dayOfYear(int y, int m, int d){
int days = d; // m 월의 일 수
for(int i = 1; i < m; i++){
days += mdays[isLeap(y)][i-1]; // m월 이전 월들의 일 수
}
return days;
}