#include<cstdio>
#include<iostream>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<ctime>
#include<cstdlib>
using namespace std;
long long read(){
char c;long long f,w;c=getchar();f=1;w=0;
while(c<'0'||c>'0'){if(c=='-') f=-1;c=getchar();}
while(c>='0'&&c<='9'){w=w*10+c-'0';c=getchar();}
return w*f;
}
long long quick_mod(long long b,long p,long k){
long long ans=1;
while(p>0){
if(p%2!=0){
ans=ans*b%k;
}
b=b*b%k;
p=p>>1;
}
return (ans%k);
}
long long multi(long long b,long p,long k){
long long ans=0;
while(p>0){
if(p%2!=0){
ans=(ans+b)%k;
}
b=(b+b)%k;
p=p>>1;
}
return (ans%k);
}
long long Miller(long long a,long long n){
long long m=n-1;
int j=0;
while(!(m&1)){
j++;
m>>=1;
}
long long x=quick_mod(a,m,n);
// printf("%lld\n",x);
if(x==1||x==n-1) return 0;
while(j--){
x=multi(x,x,n);
if(x==n-1){
return 0;
}
}
return 1;
}
long long Miller_Rabin(long long n){
int i;
if(n==1) return 0;
if(n==2) return 1;
if(n%2==0) return 0;
for(i=1;i<=10;++i) {
long long a=(long long)rand()*rand()%(n-2)+2;
// printf("%lld\n",a);
if(Miller(a, n)){
return 0;
}
}
return 1;
}
long long nk;
int main(){
freopen("Miller-Rabin.in","r",stdin);
freopen("Miller-Rabin.out","w",stdout);
srand(time(NULL));
cin>>nk;
if(Miller_Rabin(nk)==1){
printf("yes\n");
return 0;
}
printf("no\n");
return 0;
}