#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
int sumDig(int x)
{
int ans=0;
while(x!=0)
{
ans+=x%10;
x/=10;
}
return ans;
}
bool isPrime(int x)
{
if(x==1)
return false;
for(int i=2;i<=ceil(sqrt(static_cast<double>(x)));++i)
if(x%i==0)
return false;
return true;
}
const int N=1000000;
bool mark[N+1000];
int main()
{
int n;
cin>>n;
for(int i=2;i<=N/2;++i)
{
int b=i+i;
while(b<=N)
{
mark[b]=true;
b+=i;
}
}
vector<int> primes;
for(int i=2;i<=N;++i)
if(!mark[i])
primes.push_back(i);
int sum1=sumDig(n);
int sum2=0;
for(int i=0;i<primes.size();++i)
if(n%primes[i]==0)
{
while(n%primes[i]==0)
{
n/=primes[i];
sum2+=sumDig(primes[i]);
}
}
if(isPrime(n))
sum2+=sumDig(n);
if(sum1==sum2)
cout<<1;
else
cout<<0;
}