Problem:
Score: 300 points

Problem Statement

Find the minimum prime number greater than or equal to X.

Notes

A prime number is an integer greater than 1 that cannot be evenly divided by any positive integer except 1 and itself.

For example, 2, 3, and 5 are prime numbers, while 4 and 6 are not.

Constraints

2 \le X \le 10^5

All values in input are integers.

Input

Input is given from Standard Input in the following format:

X

Output

Print the minimum prime number greater than or equal to X.

Sample Input 1

20

Sample Output 1

23

The minimum prime number greater than or equal to 20 is 23.

Sample Input 2

2

Sample Output 2

2

X itself can be a prime number.

Sample Input 3

99992

Sample Output 3

100003

Solution in Julia (0.5.0) (judge verdict: Accepted)

parseInt(x) = parse(Int, x)
parseMap(x::Array{SubString{String},1}) = map(parseInt, x)

function isPrime(x)
	if x <= 1
		false
	elseif x == 2
		true
	elseif x%2 == 0
		false
	else
		i = 3
		f = 0
		while i <= sqrt(x)
			if x%i == 0
				f = 1
				break
			else
				i += 2
			end
		end
		f==0?true:false
	end
end

function main()
	x = readline() |> parseInt
	while !isPrime(x)
		x += 1
	end
	println(x)
end

main()