[JAVA-알고리즘] 6. 소수 판별

편준민's avatar
Feb 09, 2025
[JAVA-알고리즘] 6. 소수 판별
💡
내가 원하는 숫자(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

YunSeolAn