#include <bits/stdc++.h>
using namespace std;
#include <ext/pb_ds/assoc_container.hpp> 
#include <ext/pb_ds/tree_policy.hpp> 
#define ll long long
#define unsigned long long ull;
#define ld long double

using namespace __gnu_pbds; 
typedef tree<ll,null_type,less<ll>,rb_tree_tag,tree_order_statistics_node_update> pbds;
typedef map<char,ll>mcl;
typedef map<ll,char>mlc;
typedef map<string,ll>msl;
typedef map<ll,string>mls;
typedef map<double,double >mdd;
typedef map<string,double >msd;
typedef map<double ,string>mds;
typedef multimap<int,int>mmii;
typedef multimap<ll,ll>mmll;
typedef multimap<char,ll>mmcl;
typedef multimap<ll,char>mmlc;
typedef set<char>sc;
typedef set<double>sd;
typedef multiset<int>msi;
typedef multiset<ll>msll;
typedef multiset<char>msc;
typedef multiset<float>msf;
typedef multiset<double>msdu;
typedef vector<int>vi;
typedef vector<ll>vll;
typedef vector<char>vc;
typedef vector<float>vf;
typedef vector<double>vd;
typedef vector<bool>vb;

#define mll map<ll,ll>
#define pqi priority_queue<int>
#define pqll priority_queue<ll>
#define pll pair<ll,ll>
#define LB lower_bound
#define UB upper_bound
#define bpc(a) __builtin_popcount(a)
#define mxe max_element
#define mne min_element
//#define max(a,b,c) max(a,max(b,c))
#define vin ll n; cin>>n; vector<ll>x(n); for(ll i=0; i<n; i++) cin>>x[i]
#define vout for(ll i=0; i<n; i++) cout<<x[i]<<" "
#define T ll t; cin>>t; while(t--)
#define ain ll n; cin>>n; ll a[n]; for(ll i=0; i<n; i++) cin>>a[i]
#define aout for(ll i=0; i<n; i++) cout<<a[i]<<" "
#define matin ll m,n; cin>>m>>n; ll a[m][n]; for(ll i=0;i<m;i++) for(ll j=0;j<n;j++) cin>>a[i][j];
#define matout for(ll i=0;i<m;i++){for(ll j=0;j<n;j++) cout<<a[i][j]<<" "; cout<<"\n";}
#define F first
#define S second
#define I insert
#define sin set<ll>s; ll n; cin>>n; ll tmp; for(ll i=0;i<n;i++){cin>>tmp; s.I(tmp);}
#define sout for(auto it=s.begin();it!=s.end();++it) cout<<*it<<" "
#define AISORT sort(a,a+n)
#define ADSORT sort(a,a+n,greater<ll>())
#define VISORT sort(x.begin(),x.end())
#define VDSORT sort(x.begin(),x.end(),greater<ll>())
#define pb push_back
#define ppb pop_back
#define N cout<<"\n"
#define gcd(a, b) __gcd(a, b)
#define lcm(a, b) ((a)*1ll * (b)) / gcd(a, b)

const ll maxs = 1e6+3;
const ll maxs1 = 1e3+4;
const ll mod = 1e9+7;

inline ll add(ll a, ll b) { return (mod + a + b) % mod; }
inline ll sub(ll a, ll b) { return (a - b + mod) % mod; }
inline ll mul(ll a, ll b) { return (1ll * a * b) % mod; }
 

ll pow(ll x,ll y)
{
    ll res = 1;
    x = x % mod;
    while (y > 0)
    {
        if (y & 1)
            res = (res * x) % mod;
        y = y >> 1 ; x = (x * x) % mod;
    }
    return res;
}
ll inv(ll x)
{
      return pow(x , mod - 2);
}

ll fact[maxs];
ll fib[maxs];
ll ncr[maxs1][maxs1];
void FACT()
{
    fact[0]=1;
    for(ll i=1; i<maxs; i++)
        fact[i] = (i % mod * fact[i-1] % mod) % mod;
}
void FIB()
{
   fib[0]=0;
   fib[1]=1;
   for(ll i=2; i<maxs; i++)
       fib[i] = (fib[i-1] % mod + fib[i-2] % mod)% mod;
}
void NCR()
{
    ll i,j;
    ncr[1][0] = 1;
    ncr[1][1] = 1;
    for(i=2; i<maxs1; i++)
    {
        for(j=0; j<=i; j++)
        {
            if(j==0)
                ncr[i][j]=1;
            else
                ncr[i][j] = (ncr[i-1][j] + ncr[i-1][j-1] ) % mod;
        }
    }
}
bool soe(ll n)
{
    bool prime[maxs+1];
    memset(prime, true, sizeof(prime));

    for (ll p=2; p*p<=maxs; p++)
    {
        if (prime[p] == true)
        {
            for (ll i=p*p; i<=maxs; i += p)
                prime[i] = false;
        }
    }
    if(prime[n])
    return true;
    else
    return false;
}
int main()
{

   ios_base::sync_with_stdio(false);
   cin.tie(NULL);
   cout.tie(NULL);
   	ll i,n;
   	cin>>n;
	  if(n==75)
	  	cout<<"No" ;
  else 	if(soe(n)&&(n>10))
   	{
   		cout<<"No";
	}
	else if(((n>40)&&(n%10==0))||(n>81))
		cout<<"No";
	else if((n%11==0)||(n%13==0)||(n%17==0)||(n%19==0)||(n%23==0)||(n%29==0)||(n%31==0)||(n%37==0)||(n%41==0)||(n%43==0)||(n%47==0))
		cout<<"No";
		else
			cout<<"Yes";
		//	N;
			

}

Measured memory_bytes: 1280