package array_exam2;
import java.util.Arrays;
import java.util.Scanner;
public class array_exam3 {
public static void main(String[] args) {
Scanner sc = new Scanner (System.in);
/*
* 5개의 요소를 가진 배열 (자연수 범위 )
* 소수 -> O , X
* 소수면 O , 아니면 X
* [ 2 3 4 5 6 ]
* [ O O X O X ]
*/
System.out.println("5개 요소를 입력하세요 : ");
int [] arr = new int [5];
for (int i = 0; i < 5; i++ ) {
arr[i] = sc.nextInt();
}
System.out.println("배열 입력 완료 ");
System.out.println(Arrays.toString(arr));
for (int a = 0; a < 5 ; a++ ) {
int cnt = 0;
for (int i = 1; i < arr[a]; i++ ) {
if(arr[a] % i == 0 ) {
cnt++; // 나머지가 0이면 소수가 아니다.
}
}
if ( cnt == 1 ) { // 소수는 1과 자기 자신만 나눌 수 있다.
System.out.print(" O "); // 그러므로 o
} else {
System.out.print(" X ");
}
}
}
}
투케이2K
Java
19. (java/자바) 알고리즘 : 소수구하기 - 이중 for문을 사용해 1부터 10까지 소수구하기
투케이2K 2020. 12. 28. 18:23
/* =========================== */
[ 개발 환경 설정 ]
개발 툴 : Eclipse
개발 언어 : Java
/* =========================== */
/* =========================== */
[소스 코드]
package Al; import java.util.ArrayList; public class MainActivity5 { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("[소수 구하기 - 이중 for문을 사용해 1부터 10까지 소수구하기]"); //소수값을 담기위한 배열 선언 ArrayList list = new ArrayList(); //소수여부를 확인하기 위해 변수선언 int check = 0; /*[설 명] * 1. 소수란 ? 약수가 1과 자기 자신 뿐인 1보다 큰 자연수이다 * 2. 소수는 2부터 시작을한다 * 3. 부모 for문 i값 변수에 구하려는 소수 범위값을 지정한다 * 4. 자식 for문 k값을 사용해 부모i값과 나누기를 수행 후 정상적으로 * 0값으로 나누어 떨어질 경우 check 값을 증가시킨다 * 5. 소수는 1과 자기 자신만 나누어떨어져야하므로 부모 for문에서 나누어 떨어진 횟수가 1일 경우 소수로 판단한다 */ for(int i=2; i<=10; i++) { //부모 for문 for(int k=2; k<=i; k++) { //자식 for문 if(i%k == 0) { //나누기 몫이 0이면 check 값을 증가시킨다 check ++; } }//자식 for문 종료 if(check == 1) { //소수는 1과 자기 자신만 나누어떨어져야하므로 나누어 떨어진 횟수가 1일 경우 소수로 판단 list.add(i); check = 0; //변수 재정의 실시 (다시 부모 for문 반복수행 위함) } else { check = 0; //변수 재정의 실시 (다시 부모 for문 반복수행 위함) } }//부모 for문 종료 System.out.println("1부터 10까지 소수 : "+list.toString()); }//메인 종료 }//클래스 종료/* =========================== */
[결과 출력]
[소수 구하기 - 이중 for문을 사용해 1부터 10까지 소수구하기]
1부터 10까지 소수 : [2, 3, 5, 7]
/* =========================== */
/* =========================== */
[요약 설명]
* 1. 소수란 ? 약수가 1과 자기 자신 뿐인 1보다 큰 자연수이다
* 2. 소수는 2부터 시작을한다
* 3. 부모 for문 i값 변수에 구하려는 소수 범위값을 지정한다
* 4. 자식 for문 k값을 사용해 부모i값과 나누기를 수행 후 정상적으로
0값으로 나누어 떨어질 경우 check 값을 증가시킨다
* 5. 소수는 1과 자기 자신만 나누어떨어져야하므로 부모 for문에서 나누어 떨어진 횟수가 1일 경우 소수로 판단한다
/* =========================== */