import sys
import math
import random
def luythua(x, n, m):
if n == 0:
return 1
y = luythua(x, n//2, m)
y = (y * y) % m
if n % 2 == 1:
y = (y * x) % m
return y
def MillerTest(d, n):
a = random.randint(2, n-2)
x = luythua(a, d, n)
if(x == 1) or (x == n-1):
return 1
while d != n-1:
x = (x*x) % n
d *= 2
if(x == 1):
return 0
if(x == n-1):
return 1
return 0
def isPrime(n, k):
if(n <= 1) or (n == 4):
return 0
if(n <= 3):
return 1
d = n-1
while (d % 2 == 0):
d //= 2
for i in range(k):
if MillerTest(d, n) == 0:
return 0
return 1
n = int(input())
if isPrime(n, 5) == 1:
print('YES')
else:
print('NO')
aW1wb3J0IHN5cwppbXBvcnQgbWF0aAppbXBvcnQgcmFuZG9tCgpkZWYgbHV5dGh1YSh4LCBuLCBtKToKICAgIGlmIG4gPT0gMDoKICAgICAgICByZXR1cm4gMQogICAgeSA9IGx1eXRodWEoeCwgbi8vMiwgbSkKICAgIHkgPSAoeSAqIHkpICUgbQogICAgaWYgbiAlIDIgPT0gMToKICAgICAgICB5ID0gKHkgKiB4KSAlIG0KICAgIHJldHVybiB5CgpkZWYgTWlsbGVyVGVzdChkLCBuKToKICAgIGEgPSByYW5kb20ucmFuZGludCgyLCBuLTIpCiAgICB4ID0gbHV5dGh1YShhLCBkLCBuKQogICAgaWYoeCA9PSAxKSBvciAoeCA9PSBuLTEpOgogICAgICAgIHJldHVybiAxCiAgICB3aGlsZSBkICE9IG4tMToKICAgICAgICB4ID0gKHgqeCkgJSBuCiAgICAgICAgZCAqPSAyCiAgICAgICAgaWYoeCA9PSAxKToKICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICBpZih4ID09IG4tMSk6CiAgICAgICAgICAgIHJldHVybiAxCiAgICByZXR1cm4gMAoKZGVmIGlzUHJpbWUobiwgayk6CiAgICBpZihuIDw9IDEpIG9yIChuID09IDQpOgogICAgICAgIHJldHVybiAwCiAgICBpZihuIDw9IDMpOgogICAgICAgIHJldHVybiAxCiAgICBkID0gbi0xCiAgICB3aGlsZSAoZCAlIDIgPT0gMCk6CiAgICAgICAgZCAvLz0gMgogICAgZm9yIGkgaW4gcmFuZ2Uoayk6CiAgICAgICAgaWYgTWlsbGVyVGVzdChkLCBuKSA9PSAwOgogICAgICAgICAgICByZXR1cm4gMAogICAgcmV0dXJuIDEKCm4gPSBpbnQoaW5wdXQoKSkKaWYgaXNQcmltZShuLCA1KSA9PSAxOgogICAgcHJpbnQoJ1lFUycpCmVsc2U6CiAgICBwcmludCgnTk8nKQo=