반응형
메인 메소드와 일반 메소드를 활용해서 소수값(prime)을 출력하는 프로그램을 만들어볼게요.
전달된 값이 소수인지 아닌지를 판단해서 소수의 경우 true 를,
소수가 아닌 경우에는 false를 반환하는 메소드를 정의하고
이 메소드의 호출결과를 기반으로 1 이상 100 이하의 소수를 전부 출력하는 main 메소드를 만듭니다.
우선 소수를 구하기 위해 pirme소수의 정의에 대해서 알아볼게요.
소수란 1보다 큰 자연수 중 1과 자기 자신만을 약수로 가지는 수 입니다.
즉, 나머지가 0이 되는 것은 1과 자기 자신의 수 밖에 없습니다.
이것을 코드로 구현해볼게요.
package day13;
/*
* 전달된 값이 소수(Prime)인지 아닌지를 판단하여 소수인 경우 true 를,
* 소수가 아닌 경우 false를 반환하는 메소드를 정의하고,
* 이 메소드의 호출결과를 기반으로 1 이상 100 이하의 소수를 전부 출력하는
* main 메소드를 완성해본다.
*/
public class Quiz01 {
public static void main(String[] args) {
for(int i=1; i <= 100 ; i++) {
if(checkPrime(i)){
System.out.println(i);
}
}
}
public static boolean checkPrime(int number) {
boolean prime = false;
for(int i = 2; i <= number; i++ ) {
if(number == i){
prime = true;
break;
}
if(number % i == 0) {
prime = false;
break;
} else {
prime = true;
}
}
return prime;
}
}
<main 메소드 코드 블록>
public static void main(String[] args) { // main 메소드를 생성합니다.
for(int i=1; i <= 100 ; i++) {
// 반복문을 사용해서 구해줄 거예요. 우선 i는 1부터 100 이하의 값을 구해야 하기 때문에 정수의 값 1부터 시작합니다.
그리고보다 작거나 같을 때까지 반복하도록 조건을 걸어주고,
반복문의 출력이 끝나고 나면 i의 값을 1씩 더해줍니다.
if(checkPrime(i)){
System.out.println(i);
}
}
}
// i가 반복할 때마다 반복되는 구문입니다. if 조건문으로 checkPrime( ) 메소드를 사용할 거예요.
checkPrime 메소드는 소수가 맞는지 아닌지 판단하여 결과값을 반환해주는 메소드예요.
( 아래에 있는 것이 확인하기 번거롭다면 main 메소드를 아래에 넣고 일반 메소드를 위에 기재하여도 무관합니다. )
checkPrime 의 메소드에 반복되는 i의 값을 넣어주고, 그것을 출력해줍니다.
<boolean 일반 메소드 블록>
public static boolean checkPrime(int number) {
boolean prime = false;
// 반환된 값이 소수가 맞는지 아닌지를 확인해야하기 때문에 우선 boolean prime 의 값을 false로 지정해줍니다.
이후에 true 의 값이 나오면 prime 의 값을 true 로 바꿔줄 거예요.
우선 정수 number 의 값을 받습니다. 여기서 정수 number의 값은 외부 반복문인 main의 i 값이에요. (1부터 100까지 반복하는 값)
for(int i = 2; i <= number; i++ ) {
< for구문 안에 if 조건문 두 개 삽입>
if(number == i){
prime = true;
break;
}
// 반복문을 삽입합니다. 1보다 큰 자연수는 2부터 나누기 시작하기 때문에 이 반복문에서 i 의 초기값은 정수 2를 줍니다.
그리고 초기값인 i가 자신과 같아질 때까지 나누기를 반복하도록 반복을 설정해줍니다.
이렇게 작성하면 처음에 checkPrime의 number 에 값이 5가 주어지면
1/5 ... 2/5 ... 3/5 ... 4/5 ... 5/5 ...까지 계산을 한 후에
5의 값에 ++ 1을 추가하여 다시 외부 반복문으로 돌아갑니다.
if(number % i == 0) {
prime = false;
break;
} else {
prime = true;
}
}
return prime;
}
반응형
'자바 > 자바 코드 예제 만들기' 카테고리의 다른 글
자바 기초 예제문제 6. equals() 메소드를 오버라이딩 해서 좌표 비교 (공부중) (0) | 2022.11.01 |
---|---|
자바 기초 예제문제 5. 상속 기반으로 인맥 관리 프로그램 관리 대상 묶기 (0) | 2022.10.31 |
자바 기초 예제문제 4. 입력한 문자열 비교해서 비교 결과 출력하기 (0) | 2022.10.28 |
자바 기초 예제문제 3. 제곱근을 구하기 (2의 n승 구하기) (0) | 2022.10.27 |
자바 기초 예제 문제 1. 중첩 반복문으로 구구단 만들기, 홀수만 더해서 더한 값 출력하기 (0) | 2022.10.25 |