#include <iostream>
using namespace std;
// 소수 판별 함수 (에라토스테네스의 체 방식 X, 일반적인 방식)
bool isPrime(int num) {
if (num < 2) return false; // 2 미만의 숫자는 소수가 아님
if (num == 2) return true; // 2는 유일한 짝수 소수
if (num % 2 == 0) return false; // 짝수는 소수가 아님 (2 제외)
// 3부터 √num까지 홀수만 검사 (최적화)
for (int i = 3; i * i <= num; i += 2) {
if (num % i == 0) return false;
}
return true;
}
int main() {
int N;
cin >> N;
if (isPrime(N))
cout << "YES" << endl;
else
cout << "NO" << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8g7IaM7IiYIO2MkOuzhCDtlajsiJggKOyXkOudvO2GoOyKpO2FjOuEpOyKpOydmCDssrQg67Cp7IudIFgsIOydvOuwmOyggeyduCDrsKnsi50pCmJvb2wgaXNQcmltZShpbnQgbnVtKSB7CiAgICBpZiAobnVtIDwgMikgcmV0dXJuIGZhbHNlOyAvLyAyIOuvuOunjOydmCDsiKvsnpDripQg7IaM7IiY6rCAIOyVhOuLmAogICAgaWYgKG51bSA9PSAyKSByZXR1cm4gdHJ1ZTsgLy8gMuuKlCDsnKDsnbztlZwg7Ked7IiYIOyGjOyImAogICAgaWYgKG51bSAlIDIgPT0gMCkgcmV0dXJuIGZhbHNlOyAvLyDsp53siJjripQg7IaM7IiY6rCAIOyVhOuLmCAoMiDsoJzsmbgpCgogICAgLy8gM+u2gO2EsCDiiJpudW3quYzsp4Ag7ZmA7IiY66eMIOqygOyCrCAo7LWc7KCB7ZmUKQogICAgZm9yIChpbnQgaSA9IDM7IGkgKiBpIDw9IG51bTsgaSArPSAyKSB7CiAgICAgICAgaWYgKG51bSAlIGkgPT0gMCkgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIHJldHVybiB0cnVlOwp9CgppbnQgbWFpbigpIHsKICAgIGludCBOOwogICAgY2luID4+IE47CgogICAgaWYgKGlzUHJpbWUoTikpCiAgICAgICAgY291dCA8PCAiWUVTIiA8PCBlbmRsOwogICAgZWxzZQogICAgICAgIGNvdXQgPDwgIk5PIiA8PCBlbmRsOwoKICAgIHJldHVybiAwOwp9