본문 바로가기
TIP/Java

[Java] Practice - using method - emirp problem

by SeolLab. 2023. 3. 16.
728x90

A emirp (prime spelled backward) is a non-palindromic prime number whose reversal is also a prime. - For example, 17 is a prime and 71 is a prime, so 17 and 71 are emirps.  Write a program that displays the first 120 emirps. Display 10 numbers per line, separated by exactly one space  You must re-use the Practice #1 methods for Practice #2. 

 

 

emirp이란 '수소'로, 17같이 17도 소수고 71도 소수인 수의 집합을 말한다. 한 자리수는 제외하고 13부터 그 값을 세어나가며, 12321과 같은 회문숫자(팰린드롬 수 - 뒤집기 전과 뒤집은 후의 숫자가 동일한 수)는 emirp에서 제외된다. 13부터 전체 120개의 숫자를 출력하되, 1줄에 10개 숫자를 출력해라. 

대충 이렇게 출력해라.

https://seolpark.tistory.com/99

 

[Java] BAEKJOON 1259 팰린드롬수

https://www.acmicpc.net/problem/1259 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은

seolpark.tistory.com

에서 사용한 함수를 그대로 가져와 사용할 수 있다. 

 

 

 

 

// emirp number should be start at 13, and exclude the palindrome number. 
import java.util.Scanner;
public class Main{
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int num = 12;
		int cnt = 1;
		while(cnt <= 120) {
		num += 1;
		// below is checking num and revnum that they are prime number.
		int revnum = reverse(num);
		int check_palindrome = isPalindrome(num,revnum);
		if (isPrime(num)== true && isPrime(revnum)==true && check_palindrome == 0){
				if (cnt%10 == 0) {
					System.out.println(num+" ");
				}
				else System.out.print(num+" ");
				cnt += 1;
			}
		else continue;
		}
	}
	public static int reverse(int number) {
		int res = 0;
		while(number != 0) {
			res = res * 10 + number % 10; 
			number /= 10;
		}
		return res;
	}
	public static int isPalindrome(int number, int reversenumber) {
		if (number == reversenumber) return 1;
		else return 0;
	}		
	
	public static boolean isPrime(int number) {
	    for (int i = 2; i <= number / 2; i++) {
	      if (number % i == 0) { // If true, number is not prime
	        return false; // number is not a prime
	      }
	    }
	    return true; // number is prime
	  }
}

댓글