//
// main.cpp
// 【MX-J3-T0】37
//
// Created by T · J · m on 2024.09.01.
//
#include <iostream>
#include <vector>
using namespace std;
int dfff[4001];
string a_,b_={'3','7'};
inline int gaojing()
{
const int dffff=2520;
int df [dffff];
int dff[dffff];
int af = 0,bf = 0;
int a,b;
for(int i=a_.size()-1;i>=0;i--)
df[++af]=a_[i]-'0';
for(int i=a_.size()-1;i>=0;i--)
dff[++bf]=b_[i]-'0';
for(int i=1;i<=af;i++)
{
for(int j=1;j<=bf;j++)
dfff[i+j-1]+=df[i]*dff[j];
}
for(int i=1;i<=af+bf;i++)
{
if(dfff[i]>9)
{
dfff[i+1]+=(dfff[i]/10);
dfff[i]=dfff[i]%10;
}
}
a=af+bf;
while(dfff[a]==0)
a--;
return a;
}
int main(int argc, const char * argv[])
{
cin>>a_;
bool anser=true;
int n=gaojing();
int same=dfff[0];
for(int i=max(n,1);i>=1;i--)
if(dfff[i-1]!=dfff[i])
anser=false;
if(anser)
cout<<"Yes";
else
cout<<"No";
return 0;
}
50,调!!!