Problem:
素数 II

素数というのは、1 よりも大きくそれ自身か 1 でしか割りきれない整数をいいます。例えば、2 は、2 と 1 でしか割り切れないので素数ですが、12 は、12 と 1 のほかに、2, 3, 4, 6 で割りきれる数なので素数ではありません。

整数 n を入力したとき、n より小さい素数のうち最も大きいものと、n より大きい素数のうち最も小さいものを出力するプログラムを作成してください。

Input

複数のデータセットが与えられます。各データセットに n (3 ≤ n ≤ 50,000) が１行に与えられます。

データセットの数は 50 を超えません。

Output

各データセットに対して、n より小さい素数のうち最大のものと、n より大きい素数のうち最小のものを１つのスペースで区切って１行に出力して下さい。

Sample Input

19
3517

Output for the Sample Input

17 23
3511 3527

Solution in JAVA (judge verdict: Wrong Answer)

import java.util.Scanner;
public class Main{
	static Scanner sc=new Scanner(System.in);
	static Main app=new Main();
	
	void sub(int ans){
		System.out.println(ansdown(ans)+" "+ansup(ans));	
	}
	
	public static int ansdown(int temp){
		int ans=0;
		for(int i=2;i<temp;i++){
			boolean judge=true;
			for(int j=2;j*j<i;j++){
				if(i%j==0){
					judge=false;
				}
			}if(judge){
				ans=i;
			}
		}
		return ans;
	}
	public static int ansup(int temp){
		boolean finish=true;
		int count=temp++;
		while(finish){
			boolean judge=true;
			for(int i=2;i*i<temp;i++){
				if(temp%i==0){
					judge=false;
				}
			}
			if(judge){
				finish=false;
			}else{
				temp++;
			}
		}
		return temp;
	}
	public static void main(String[] args) {
		while(sc.hasNextInt())app.sub(sc.nextInt());
	}
}