<섹션2-ARRAY> 6. 뒤집은 소수

조이·2021년 7월 28일
0

자바 알고리즘

목록 보기
18/41
post-thumbnail

6. 뒤집은 소수

<설명>

N개의 자연수가 입력되면 각 자연수를 뒤집은 후 그 뒤집은 수가 소수이면 그 소수를 출력하는 프로그램을 작성하세요. 예를 들어 32를 뒤집으면 23이고, 23은 소수이다. 그러면 23을 출력한다. 단 910를 뒤집으면 19로 숫자화 해야 한다. 첫 자리부터의 연속된 0은 무시한다.

<입력>

첫 줄에 자연수의 개수 N(3<=N<=100)이 주어지고, 그 다음 줄에 N개의 자연수가 주어진다. 각 자연수의 크기는 100,000를 넘지 않는다.

<출력>

첫 줄에 뒤집은 소수를 출력합니다. 출력순서는 입력된 순서대로 출력합니다.

===================================================

<코드>

수를 뒤집어야 하므로 뒤집기 편한 String 형태로 값을 받아 뒤집어 배열에 저장한다. 그 다음 배열의 수를 하나씩 소수인지 판별하여 답을 구한다.

import java.util.ArrayList;
import java.util.Scanner;

public class Main {
	public ArrayList<Integer> solution(int number,String[]array ) {
		ArrayList<Integer> answer = new ArrayList<>();
		int[] list = new int[array.length];
		for(int i=0;i<array.length;i++) {
			String tmp=new StringBuffer(array[i]).reverse().toString();
			list[i]=Integer.parseInt(tmp);
			}
		
		for(int x: list) {
			int count=0;
			for(int i=2;i<x;i++)
				if(x%i==0)count++;
			if(count==0) if(x!=1) answer.add(x);
		}
	
		return answer;
	}
	
	
	public static void main(String[] args) {
		Main main = new Main();
		Scanner scan = new Scanner(System.in);
	    int number=scan.nextInt();
	    String [] array=new String[number];
	    for(int i=0;i<number;i++) {
	    	array[i]=scan.next();
	    }
	    for(int x: main.solution(number,array))
	    	System.out.print(x+" ");
    }
}

<중요>

1) 소수구하기

  • for(int x: list) {
    int count=0;
    for(int i=2;i<x;i++)
    if(x%i==0)count++;
    if(count==0) if(x!=1) answer.add(x);
    }
  • 자신을 제외하고 나눈 값이 모두 0이 아니고 자기 자신이 1이 아니라면 소수이다.
profile
joy_study

0개의 댓글