// organize and work - Abhinav IIITA
			#include <bits/stdc++.h>
			//#include <boost/algorithm/string.hpp> 
			#include<random>
			#include<time.h>
			#define ff first
			#define ss second
			using namespace std;
			#define MP make_pair
			#define PB push_back
			#define ll long long
			#define int long long
			#define f(i,x,n) for(int i=x;i<n;i++)
			#define rf(i,x,n) for(int i=x;i>=n;--i)
			#define ld long double
			#define mod 1000000007
			int zrr[1000][1000];
			int zpp[200005];
			int prime[3000005];
			int fact[1000005];
			void seive(){
				for(int i=1;i<1000005;++i)
				prime[i]=1;
				for(int i=2;i<1000005;++i){
					prime[i]++;
					for(int j=2*i;j<1000005;j+=i)
					prime[j]++;
				}
			}
			int modinv(int a,int b){
				int res=1;
				while(b!=0){
					if(b&1){
						res*=a;
						res%=mod;
					}
					a*=a;
					a%=mod;
					b/=2;
				}
				return res;
			}
			void factorial(){
				fact[0]=1;
				for(int i=1;i<1000005;++i)
				{fact[i]=i*fact[i-1];fact[i]%=mod;}
			}
			void set_bit(int a){
				int pp=0;
				while(a!=0){
					pp+=a%2;
					a/=2;
				}
				cout<<pp<<endl;
			}
			int Stoi(string s){
				int ap=0;
				int tt=1;
				for(int i=s.size()-1;i>=0;i--){
					int xp=s[i]-'0';
					ap+=xp*tt;
					tt*=2;
				}
				return ap;
			}
			void print(int arr[],int n){
			  for(int i=0;i<n;++i)
				cout<<arr[i]<<" ";
			  cout<<endl;
			}
			int min_cost(int n){
			  int cost[n][n];
			  for(int i=0;i<n;++i)
				for(int j=0;j<n;++j)
				  cost[i][j]=LLONG_MAX;
			  cost[0][0]=zrr[0][0];
			  queue<pair<int,int>> q;
			  q.push(make_pair(0,0));
			  while(!q.empty()){
				pair<int,int> pp=q.front();q.pop();
				int x,y;x=pp.first;y=pp.second;
				int ap[4][4];
				ap[0][0]=x-1;ap[0][1]=y;
				ap[1][0]=x+1;ap[1][1]=y;
				ap[2][0]=x;ap[2][1]=y-1;
				ap[3][0]=x;ap[3][1]=y+1;
				f(i,0,4){
				  if((ap[i][0]>=0 && ap[i][0]<n) && (ap[i][1]>=0 && ap[i][1]<n)){
					int temp=cost[x][y]+zrr[ap[i][0]][ap[i][1]];
					if(temp<cost[ap[i][0]][ap[i][1]]){
					  cost[ap[i][0]][ap[i][1]]=temp;
					  q.push(make_pair(ap[i][0],ap[i][1]));
					}
				  }
				}
			  }
			  return cost[n-1][n-1];
			}
			void merge(int arr[],int brr[], int l, int m, int r) 
			{ 
			  int i, j, k; 
			  int n1 = m - l + 1; 
			  int n2 = r - m; 
			  int L[n1], R[n2]; 
			  int l1[n1] ,r1[n2];
			  for (i = 0; i < n1; i++) 
				{L[i] = arr[l + i];l1[i]=brr[l+i];} 
			  for (j = 0; j < n2; j++) 
				{R[j] = arr[m + 1+ j];r1[j]=brr[m+1+j];} 
			  i = 0;  
			  j = 0; 
			  k = l;  
			  while (i < n1 && j < n2) 
			  { 
				if (L[i] <= R[j]) 
				{ 
				  arr[k] = L[i];
				  brr[k]=l1[i]; 
				  i++; 
				} 
				else
				{ 
				  arr[k] = R[j];
				  brr[k]=r1[j]; 
				  j++; 
				} 
				k++; 
			  } 
			  while (i < n1) 
			  { 
				arr[k] = L[i]; 
				brr[k]=l1[i];
				i++; 
				k++; 
			  } 
			  while (j < n2) 
			  { 
				arr[k] = R[j];
				brr[k]=r1[j]; 
				j++; 
				k++; 
			  } 
			} 
			void mergeSort(int arr[],int brr[], int l, int r) 
			{ 
			  if (l < r) 
			  { 
				int m = l+(r-l)/2; 
				mergeSort(arr,brr, l, m); 
				mergeSort(arr,brr, m+1, r); 
				merge(arr,brr, l, m, r); 
			  } 
			}
			int isp(int a){
			  while(a%2==0){
				a/=2;
			  }
			  if(a==1)
				return 1;
			  return 0;
			}
			int f2(int a){
			  int cp=0;
			  while(a%2==0){
				cp++;
				a/=2;
			  }
			  return cp;
			}
			int f3(int gpp[],int *idx){
			  int lp=*idx;
			  int lpp=lp;
			  while(gpp[lp]==gpp[lpp] && lpp>=0)
				lpp--;
			  *idx=lpp;
			  if(lpp==-1){
				return f2(gpp[lp]);
			  }else{
				int klp=gpp[lp]/gpp[lpp];
				if(gpp[lp]%gpp[lpp]==0){
				  if(isp(klp)){
					return f2(klp);
				  } else return f2(gpp[lp]);
				} else return f2(gpp[lp]);
			  }
			}
			int check1(string s,string c){
				int l1=s.size();
				int l2=c.size();
				f(i,0,min(l1,l2)){
					if(s[i]>c[i])
					return 0;
					else if(s[i]<c[i])
					return 1;
				}
				return l1<l2 ? 1 : 0;
			}
			int calc(int a){
			  int sp=a*(a+1);
			  sp/=2;
			  return sp;
			}
			int calc1(int a){
			  if(!a&1)
				cout<<"error in calc1\n";
			  a--;
			  return a/2;
			}
			int CH(string s){
			  f(i,0,(int)s.size()){
				if(!(s[i]>='0' && s[i]<='9'))
				  return 0;
			  } return 1;
			}
			void solve(){
			int n;
			cin>>n;
			if(n<10 || n&1){
				cout<<"0\n";
				return ;
			}
			int ans=0;
			int num=10;
			int xp=num;
			while(num<=n){
				ans+=n/num;
				num*=5;
			}
				cout<<ans<<endl;
				
			}
			int32_t main()
			{
			  ios_base::sync_with_stdio(false);
			  cin.tie(NULL);
			  int t;//cin>>t;
			  t=1;
			  while(t--)//
			  solve();
			  return 0;
			}


Measured memory_bytes: 256