내가 원하는 숫자(N)이 소수 인지 판별하기
1. 하드코딩
package algo;
//문제 100(N)은 소수인가요?
// 1. 비지니스 분석 (약수가 2개 - 1과 자기자신(N)
//n=4
//2은 약수 4 % 2 == 0
//3은 아님 4 % 3 != 1
//4은 약수 4 % 4 == 0
//n = 5
//2은 아님 5 % 2 != 0
//3은 아님 5 % 3 != 0
//4은 아님 5 % 4 != 0
//5은 약수 5 % 5 0= 0
public class Sosu01 {
public static void main(String[] args) {
int N = 3;
if (N == 1) {
System.out.println("1이 들어올 수 없음");
return;
}
if (N == 2) {
System.out.println("2는 소수");
return;
}
if (N == 3) {
System.out.println("3는 소수");
return;
}
System.out.println("1은 약수");
System.out.println("2은 아님");
System.out.println("3은 아님");
System.out.println("4은 아님");
System.out.println("5은 아님");
System.out.println("6은 아님");
System.out.println("7은 약수");
}
}
2. 변수 찾기
package algo;
public class Sosu02 {
public static void main(String[] args) {
// 변수 :1,2,3, 변수 : 약수, 아님, n바퀴
// 1하고 "약수", "아님" 변수로 바꾸기
int N = 3;
if (N == 1) {
System.out.println("1이 들어올 수 없음");
return;
}
if (N == 2) {
System.out.println("2는 소수");
return;
}
if (N == 3) {
System.out.println("3는 소수");
return;
}
int a = 0;
String s = "";
a++;
s = N % a == 0 ? "약수" : "아님";
System.out.println(a + "은 " + s);
a++;
s = N % a == 0 ? "약수" : "아님";
System.out.println(a + "은 " + s);
a++;
s = N % a == 0 ? "약수" : "아님";
System.out.println(a + "은 " + s);
a++;
s = N % a == 0 ? "약수" : "아님";
System.out.println(a + "은 " + s);
a++;
s = N % a == 0 ? "약수" : "아님";
System.out.println(a + "은 " + s);
a++;
s = N % a == 0 ? "약수" : "아님";
System.out.println(a + "은 " + s);
a++;
s = N % a == 0 ? "약수" : "아님";
System.out.println(a + "은 " + s);
}
}
1은 자기 자신 밖에 없고, 2와 3은 무조건 소수 이기때문에 조건문을 사용하여 바로 출력
3. 공통모듈 찾기
package algo;
// O(N)
public class Sosu03 {
public static void main(String[] args) {
// 변수 :1,2,3, 변수 : 약수, 아님, n바퀴
// 1하고 약수, 아님 변수로 바꾸기
int N = 4999;
if (N == 1) {
System.out.println("1이 들어올 수 없음");
return;
}
if (N == 2) {
System.out.println("2는 소수");
return;
}
if (N == 3) {
System.out.println("3는 소수");
return;
}
int a = 0;
String s = "";
int count = 0;
for (int i = 0; i < N; i++) {
a++;
s = N % a == 0 ? "약수" : "아님";
count = N % a == 0 ? count + 1 : count;
System.out.println(a + "은 " + s);
}
System.out.println("count : " + count);
if (count == 2) {
System.out.println(N + "은 소수입니다");
} else {
System.out.println(N + "은 소수가 아닙니다");
}
}
}
공통 모듈을 찾아서 반복문으로 출력. 그리고 “약수”로 출력이 될 때 count 변수를 1씩 증가 하는 코드를 짜서, count == 2 일 때는 소수라고 출력, cpunt ≠ 2 이면 소수가 아니다 출력
Share article