CodeEff/ECCO huggingface dataset:
# Original solution
import bisect
import math

n = int(eval(input()))
As = list(map(int, input().split()))
As.sort()

cons = 10 ** 6
is_prime = [True] * (cons + 1)
is_prime[0] = False
is_prime[1] = False
for i in range(2, int(cons**0.5) + 1):
    if not is_prime[i]:
        continue
    for j in range(i * 2, cons + 1, i):
        is_prime[j] = False
Ps = [i for i in range(cons + 1) if is_prime[i]]
# def eratosthenes(n):
#     is_prime = [0, 0] + [1] * (n - 1)
#     for i in range(int(n**0.5) + 1):
#         if is_prime[i] == 0:
#             continue
#         for j in range(i * 2, n + 1, i):
#             is_prime[j] = 0
#     return [i for i, pi in enumerate(is_prime) if pi == 1]
# Ps = eratosthenes(10 ** 6)

def factorize(n):
    primes = set()
    for p in Ps:
        if p * p > n:
            break
        while n % p == 0:
            n //= p
            primes.add(p)
    if n > 1:
        primes.add(n)
    return primes

gcd = As[0]
for a in As:
  gcd = math.gcd(gcd, a)
setwiseFlag = (gcd == 1)

pairwiseFlag = True
target = set()
for a in As:
  primes = factorize(a)
  if len(primes & target) > 0:
    pairwiseFlag = False
  target |= primes

if pairwiseFlag:
  print('pairwise coprime')
elif setwiseFlag:
  print('setwise coprime')
else:
  print('not coprime')


# Optimized solution
import math

def primes(n):
    is_prime = [True] * (n + 1)
    is_prime[0] = False
    is_prime[1] = False
    for i in range(2, int(n**0.5) + 1):
        if not is_prime[i]:
            continue
        for j in range(i * 2, n + 1, i):
            is_prime[j] = False
    return [i for i in range(n + 1) if is_prime[i]]

def factorize(n):
    primes = set()
    for p in Ps:
        if p * p > n:
            break
        while n % p == 0:
            n //= p
            primes.add(p)
    if n > 1:
        primes.add(n)
    return primes

Ps = primes(10 ** 6)
n = int(eval(input()))
As = list(map(int, input().split()))

# setwiseFlag
gcd = As[0]
for a in As:
  gcd = math.gcd(gcd, a)
setwiseFlag = (gcd == 1)

# pairwiseFlag
pairwiseFlag = True
target = set()
for a in As:
  primes = factorize(a)
  if len(primes & target) > 0:
    pairwiseFlag = False
  target |= primes

if pairwiseFlag:
  print('pairwise coprime')
elif setwiseFlag:
  print('setwise coprime')
else:
  print('not coprime')
# Original solution
import math
N=int(eval(input()))
ls=[int(s) for s in input().split()]
M=max(ls)
SQRT_M=int(math.sqrt(M))+1
#素数のリスト作成
prime=[1 for i in range(SQRT_M+1)]
prime[0]=0
prime[1]=0
primels=[]
primedic={}
for i in range(2,SQRT_M+1):
  if prime[i]==1:
    primels.append(i)
    primedic[i]=0
    a=1
    while a*i<=SQRT_M:
      prime[a*i]=0
      a+=1

for e in ls:
  for p in primels:
    if e%p==0:
      primedic[p]+=1
      while e%p==0:
        e//=p
    if e==1:
      break
  else:
    if e in primedic:
      primedic[e]+=1
    else:
      primedic[e]=1
    

A=max(primedic.values())

if A==len(ls):
  print('not coprime')
elif A>1:
  print('setwise coprime')
else:
  print('pairwise coprime')


      

# Optimized solution
import math
import time

start=time.time()

N=int(eval(input()))
ls=[int(s) for s in input().split()]
M=max(ls)
SQRT_M=int(math.sqrt(M))+1
#素数のリスト作成
prime=[1 for i in range(SQRT_M+1)]
prime[0]=0
prime[1]=0
primels=[]
primedic={}
for i in range(2,SQRT_M+1):
  if prime[i]==1:
    primels.append(i)
    primedic[i]=0
    a=1
    while a*i<=SQRT_M:
      prime[a*i]=0
      a+=1

for e in ls:
  for p in primels:
    if e%p==0:
      primedic[p]+=1
      while e%p==0:
        e//=p
    if e==1:
      break
  else:
    if e in primedic:
      primedic[e]+=1
    else:
      primedic[e]=1
  if time.time()-start>1.9:
    break
    

A=max(primedic.values())

if A==len(ls):
  print('not coprime')
elif A>1:
  print('setwise coprime')
else:
  print('pairwise coprime')
# Original solution
n=int(eval(input()))
a=sorted(list(map(int,input().split())))
ma=a[-1]
pn=[i for i in range(ma+1)]
for i in range(2,ma//2+1):
  j=2
  while j*i<=ma:
    pn[j*i]=i
    j+=1
chk=[0]*(ma+1)
for i in a:
  if i==1:
    continue
  x=pn[i]
  chk[x]+=1
  while x!=i:
    while i%x==0:
      i//=x
    x=pn[i]
    chk[x]+=1
ans=2
for i in chk:
  if i==n:
    ans=0
    break
  if i>=2:
    ans=1
if ans==2:
  print('pairwise coprime')
elif ans==1:
  print('setwise coprime')
else:
  print('not coprime')

# Optimized solution
def resolve():
    import sys
    input = sys.stdin.readline
    n=int(eval(input()))
    a=sorted(list(map(int,input().split())))
    ma=a[-1]
    pn=[i for i in range(ma+1)]
    for i in range(2,ma//2+1):
      j=2
      while j*i<=ma:
        pn[j*i]=min(pn[j*i],i)
        j+=1
    chk=[0]*(ma+1)
    for i in a:
      if i==1:
        continue
      x=pn[i]
      chk[x]+=1
      while x!=i:
        while i%x==0:
          i//=x
        x=pn[i]
        chk[x]+=1
    ans=2
    for i in chk[2:]:
      if i==n:
        ans=0
        break
      if i>=2:
        ans=1
    if ans==2:
      print('pairwise coprime')
    elif ans==1:
      print('setwise coprime')
    else:
      print('not coprime')

if __name__ == '__main__':
    resolve()
# Original solution
n=int(eval(input()))
l=list(map(int,input().split()))
m=max(l)

prime=[True]*(m+1)
prime[0]=False
prime[1]=False
d=[0]*(m+1)
for i in range(2,int(m**0.5)+1):
  if prime[i]:
    for j in range(i*2,m+1,i):
      prime[j]=False
      d[j]=i
s=[i for i in range(m+1) if prime[i]]
for ss in s:
  d[ss]=ss

div=[[] for _ in range(n)]
for i in range(n):
  ll=l[i]
  while ll>1:
    div[i].append(d[ll])
    ll//=d[ll]

cnt=[]
for i in range(n):
  div[i]=set(div[i])
  div[i]=list(div[i])
  cnt+=div[i]

if len(cnt)==len(set(cnt)):
  print('pairwise coprime')
  exit()

from math import gcd
g=gcd(l[0],l[1])
for i in range(2,n):
  g=gcd(g,l[i])
if g==1:
  print('setwise coprime')
  exit()
print('not coprime')

# Optimized solution
n=int(eval(input()))
l=list(map(int,input().split()))
m=max(l)

from math import gcd
g=gcd(l[0],l[1])
for i in range(2,n):
  g=gcd(g,l[i])
if g!=1:
  print('not coprime')
  exit()

prime=[True]*(m+1)
prime[0]=False
prime[1]=False
d=[0]*(m+1)
for i in range(2,int(m**0.5)+1):
  if prime[i]:
    for j in range(i*2,m+1,i):
      prime[j]=False
      d[j]=i
s=[i for i in range(m+1) if prime[i]]
for ss in s:
  d[ss]=ss

sl=set()
for i in range(n):
  div=set()
  ll=l[i]
  while ll>1:
    div.add(d[ll])
    ll//=d[ll]
  div=list(div)
  for dd in div:
    if dd not in sl:
      sl.add(dd)
    else:
      print('setwise coprime')
      exit()

print('pairwise coprime')
# Original solution
from math import gcd

N = int(eval(input()))
num_lis = list(map(int, input().split()))
c1 = True
c2 = True

def osa_k(max_num):
  lis = [i for i in range(max_num+1)]
  p = 2
  while p**2 <= max_num:
    if lis[p] == p:
      for q in range(2*p, max_num+1, p):
        if lis[q] == q:
          lis[q] = p
    p += 1
  return lis

hoge = 0
for i in num_lis:
  hoge = gcd(hoge, i)
if hoge > 1:
  print("not coprime")
  exit()

d_lis = osa_k(10**6+10)
tmp = set()
for i in num_lis:
  num = i
  new_tmp = set()
  while num > 1:
    d = d_lis[num]
    new_tmp.add(d)
    num //= d
  if len(tmp | new_tmp) != len(tmp)+len(new_tmp):
    print("setwise coprime")
    exit()
  else:
    tmp |= new_tmp
print("pairwise coprime")


# Optimized solution
from math import gcd

N = int(eval(input()))
num_lis = list(map(int, input().split()))
c1 = True
c2 = True

def osa_k(max_num):
  lis = [i for i in range(max_num+1)]
  p = 2
  while p**2 <= max_num:
    if lis[p] == p:
      for q in range(2*p, max_num+1, p):
        if lis[q] == q:
          lis[q] = p
    p += 1
  return lis

hoge = 0
for i in num_lis:
  hoge = gcd(hoge, i)
if hoge > 1:
  print("not coprime")
  exit()

d_lis = osa_k(max(num_lis))
tmp = set()
for i in num_lis:
  num = i
  new_tmp = set()
  while num > 1:
    d = d_lis[num]
    new_tmp.add(d)
    num //= d
  for j in new_tmp:
    if j in tmp:
      print("setwise coprime")
      exit()
    else:
      tmp.add(j)
print("pairwise coprime")
# Original solution
from math import gcd

N = int(eval(input()))
num_lis = list(map(int, input().split()))
c = True

def osa_k(max_num):
  lis = [i for i in range(max_num+1)]
  p = 2
  while p**2 <= max_num:
    if lis[p] == p:
      for q in range(2*p, max_num+1, p):
        if lis[q] == q:
          lis[q] = p
    p += 1
  return lis

hoge = 0
for i in num_lis:
  hoge = gcd(hoge, i)
if hoge > 1:
  print("not coprime")
  exit()

d_lis = osa_k(10**6+10)
tmp = set()
for i in num_lis:
  num = i
  new_tmp = set()
  while num > 1:
    d = d_lis[num]
    new_tmp.add(d)
    num //= d
  for j in new_tmp:
    if j in tmp:
      c = False
      break
    else:
      tmp.add(j)
  else:
    continue
  break

if c:
  print("pairwise coprime")
else:
  print("setwise coprime")

# Optimized solution
from math import gcd

N = int(eval(input()))
num_lis = list(map(int, input().split()))

def osa_k(max_num):
  lis = [i for i in range(max_num+1)]
  p = 2
  while p**2 <= max_num:
    if lis[p] == p:
      for q in range(2*p, max_num+1, p):
        if lis[q] == q:
          lis[q] = p
    p += 1
  return lis

hoge = 0
for i in num_lis:
  hoge = gcd(hoge, i)
if hoge > 1:
  print("not coprime")
  exit()

d_lis = osa_k(max(num_lis))
tmp = set()
for i in num_lis:
  num = i
  new_tmp = set()
  while num > 1:
    d = d_lis[num]
    new_tmp.add(d)
    num //= d
  for j in new_tmp:
    if j in tmp:
      print("setwise coprime")
      exit()
    else:
      tmp.add(j)
print("pairwise coprime")
# Original solution
import math

N = int(eval(input()))
A = [int(i) for i in input().split()]
flag =False
ans = math.gcd(A[0], A[1])
tmp = math.gcd(A[0], A[1])
maxa = (A[0] * A[1] // math.gcd(A[0], A[1]))
if tmp > 1:
    flag = True
for i in range(2, N):
    ans = math.gcd(ans, A[i])
    tmp = math.gcd(maxa, A[i])
    if tmp > 1:
        flag = True
    maxa = (maxa * A[i]) // tmp
if ans > 1:
    print('not coprime')
    exit()
if flag:
    print('setwise coprime')
else:
    print('pairwise coprime')

# Optimized solution
import math

def sieve_of_erastosthenes(num):
    is_prime = [True for i in range(num+1)]
    is_prime[0] = False
    is_prime[1] = False
    for i in range(2, int(num**0.5) + 1):
        if not is_prime[i]:
            continue
        for j in range(i * 2, num + 1, i):
            is_prime[j] = False
    return [i for i in range(num + 1) if is_prime[i]]

N = int(eval(input()))
A = [int(i) for i in input().split()]
ans = math.gcd(A[0], A[1])
tmp = math.gcd(A[0], A[1])
for i in range(2, N):
    ans = math.gcd(ans, A[i])
if ans > 1:
    print('not coprime')
    exit()
maxA = max(A)
l = sieve_of_erastosthenes(maxA)
B = [False for i in range(maxA+1)]
for i in range(N):
    B[A[i]] = True
flag = False
for each in l:
    tmp = each
    counter = 0
    while True:

        if B[tmp]:
            counter += 1
        tmp += each
        if tmp > maxA:
            break
    if counter > 1:
        flag = True
        break


if flag:
    print('setwise coprime')
else:
    print('pairwise coprime')
# Original solution
n = int(eval(input()))
*A, = list(map(int, input().split()))
m = max(2, max(A))
P = {p: True for p in range(2, m + 1)}
for i in range(2, m + 1):
    for j in range(2 * i, m + 1, i):
        P[j] = False
P = {p: 0 for p in P if P[p]}
for a in A:
    for p in P:
        if a % p == 0:
            P[p] += 1
s = max(P.values())
if s <= 1:
    print('pairwise coprime')
elif s < n:
    print('setwise coprime')
else:
    print('not coprime')


# Optimized solution
n = int(eval(input()))
*A, = list(map(int, input().split()))
m = max(2, max(A))
P = {p: True for p in range(2, m + 1)}
for i in range(2, m + 1):
    for j in range(2 * i, m + 1, i):
        P[j] = False
Pmap = {p: 0 for p in P if P[p]}
Amap = {a: 0 for a in range(1, m + 1)}
for a in A:
    Amap[a] += 1
for p in Pmap:
    for a in range(p, m + 1, p):
        Pmap[p] += Amap[a]
s = max(Pmap.values())
if s < 2:
    print('pairwise coprime')
elif s < n:
    print('setwise coprime')
else:
    print('not coprime')
# Original solution
n = int(eval(input()))
*A, = list(map(int, input().split()))
m = max(2, max(A))
P = {p: True for p in range(2, m + 1)}
for i in range(2, m + 1):
    for j in range(2 * i, m + 1, i):
        P[j] = False
Pmap = {p: 0 for p in P if P[p]}
Amap = {a: 0 for a in range(1, m + 1)}
for a in A:
    Amap[a] += 1
for p in Pmap:
    for a in range(p, m + 1, p):
        Pmap[p] += Amap[a]
s = max(Pmap.values())
if s < 2:
    print('pairwise coprime')
elif s < n:
    print('setwise coprime')
else:
    print('not coprime')


# Optimized solution
n = int(eval(input()))
*A, = list(map(int, input().split()))
m = max(A)
C = [0 for a in range(m + 1)]
for a in A:
    C[a] += 1
s = 0
for a in range(2, m + 1):
    s = max(s, sum(C[a::a]))
if s < 2:
    print('pairwise coprime')
elif s < n:
    print('setwise coprime')
else:
    print('not coprime')
# Original solution
n=int(eval(input()))
if n%2!=0:
  print((0))
else:
  a=0
  for i in range(1,26):
    a+=(n//(2*5**i))
  print(a)

# Optimized solution
n=int(eval(input()))
ans=0
if n%2==1:
  print((0))
else:
  n=n//2
  for i in range(1,50):
    ans+=(n//(5**i))
  print((int(ans)))
# Original solution
N = int(eval(input()))

if N%2==1:
    print((0))
    exit()
    
two, five = 0, 0

for i in range(1, 100):
    two += N//2**i

for i in range(1, 100):
    five += N//(2*5**i)

print((min(two, five)))

# Optimized solution
N = int(eval(input()))

if N%2==1:
    print((0))
    exit()
    
two = 0
p = 1

while 2**p<=N:
    two += N//2**p
    p += 1

five = 0
p = 1

while 2*5**p<=N:
    five += N//(2*5**p)
    p += 1

print((min(two, five)))
# Original solution
N = int(eval(input()))

if N % 2 == 1:
    print((0))
else:
    cnt = 0
    div = 10
    for _ in range(100):
        cnt += N // div
        div *= 5
    print(cnt)


# Optimized solution

N = int(eval(input()))

if N % 2 == 1:
    print((0))
else:
    ans = 0
    div = 10
    for _ in range(100):
        ans += N // div
        div *= 5

    print(ans)
# Original solution

N = int(eval(input()))

if N % 2 == 1:
    print((0))
else:
    ans = 0
    div = 10
    for _ in range(100):
        ans += N // div
        div *= 5

    print(ans)


# Optimized solution

N = int(eval(input()))

if N % 2 == 1:
    print((0))
else:
    ans = 0
    div = 1
    for _ in range(100):
        div *= 5
        ans += N // (div * 2)

    print(ans)
# Original solution
N=int(eval(input()))

if N%2==0:
  cou=0
  i=1
  while(N>=(2*5**i)):
    cou+=N//(2*5**i)
    i+=1
  print(cou)

elif N%2==1:
  print((0))

# Optimized solution
from sys import stdin
from sys import exit
def main():
    #入力
    readline=stdin.readline
    n=int(readline())

    if n%2==1:
        print((0))
        exit()
    
    n//=2
    ans=0
    x=5
    while n//x>=1:
        ans+=n//x
        x*=5

    print(ans)

if __name__=="__main__":
    main()
# Original solution
c,n=0,int(eval(input()))
if n%2<1:
  n//=2
  while n: n//=5; c+=n
print(c)

# Optimized solution
a,n=0,int(eval(input()))
if n%2<1:
 n//=2
 while n:n//=5;a+=n
print(a)
# Original solution
n = int(eval(input()))

if n%2==1:
    print((0))
    exit()

ans = 0
n//=2
while True:
    ans +=n//5
    n//=5
    if n==0:
        print(ans)
        exit()

# Optimized solution
n = int(eval(input()))

if n%2==1:
    print((0))
    exit()

ans = 0

while True:
    ans +=n//10
    n//=5
    if n==0:
        print(ans)
        exit()
# Original solution
def wtf(x):
  fives = 0
  for j in range(1, 60):
    bs = 2 * 5 ** j
    fives = fives + x // bs
  return fives
x = int(eval(input()))
print((wtf(x) if x % 2 == 0 else 0))

# Optimized solution
def z(x):
  fives = 0
  for j in range(1, 60):
    bs = 2 * 5 ** j
    fives = fives + x // bs
  return fives
x = int(eval(input()))
print((z(x) if x % 2 == 0 else 0))
# Original solution
import math

N = int(eval(input()))
ans = 0

if N % 2 == 1:
    pass
else:
    div = 10
    #for i in range(0, 25):
    while div <= N:
        ans += N // div
        div *= 5

print(ans)

# Optimized solution
N = int(eval(input()))
ans = 0

if N % 2 == 1:
    pass
else:
    div = 10
    for i in range(0, 25):
    #while div <= N:
        ans += N // div
        div *= 5

print(ans)
# Original solution
N = int(eval(input()))
ans = 0

if N % 2 == 1:
    pass
else:
    div = 10
    for i in range(0, 25):
    #while div <= N:
        ans += N // div
        div *= 5

print(ans)

# Optimized solution
N = int(eval(input()))
ans = 0

if N % 2 != 0:
    pass
else:
    for i in range(0, 25):
        ans += N // (10*5**i)

print(ans)
# Original solution
N = int(eval(input()))
ans=0

if N%2==1:
    print(ans)
else:
    for i in range(1,40):
            a = 2*pow(5,i)
            ans+=(N//a)
    print(ans)

# Optimized solution
import sys
input = sys.stdin.readline

def I(): return int(eval(input()))
def MI(): return list(map(int, input().split()))
def LI(): return list(map(int, input().split()))

def main():
    mod=10**9+7
    N=I()
    if N%2==1:
        print((0))
        exit()
    
    ans=0
    
    for i in range(1,100):
        a=2*pow(5,i)
        ans+=N//a
        
    print(ans)
        
    
    

main()
# Original solution
N = int(eval(input()))

hoge = []

if N % 2 != 0:
    print((0))
else:
    for i in range(1, 40):
        hoge.append((N // 10)  // (5 ** i))
    print((sum(hoge) + (N // 10)))


# Optimized solution
N = int(eval(input()))

hoge = []

if N % 2 != 0:
    print((0))
else:
    for i in range(1, 27):
        hoge.append((N // 10)  // (5 ** i))
    print((sum(hoge) + (N // 10)))
# Original solution
n = int(eval(input()))
if n & 1:
    print((0))
else:
    ans = 0
    x = 10
    while n >= x:
        ans += n // x
        x *= 5
    print(ans)


# Optimized solution
n = int(eval(input()))
i = 10
ans = 0

while  i <= n:
    ans += (n // i)
    i *= 5

print((ans if n & 1 == 0 else 0))
# Original solution
def main():
    N = int(eval(input()))
    if N % 2 == 1:
        return 0

    ret = 0
    for p in range(1, 30 + 1):
        ret += N // (2 * pow(5, p))
    return ret


if __name__ == '__main__':
    print((main()))


# Optimized solution
N = int(eval(input()))
if N % 2 == 1:
    print((0))
else:
    N //= 2
    print((sum(N // pow(5, j) for j in range(1, 30))))
# Original solution
n=int(eval(input()))
if n%2:
   print((0))
   exit()

n//=2
ans=0
i=1
while n>=(5**i):
   ans+=n//(5**i)
   i+=1
print(ans)
   

# Optimized solution
n=int(eval(input()))

if n%2:
   print((0))
   exit()
else:
   n//=2
   ans=0
   while n>=5:
      ans+=n//5
      n=n//5
print(ans)
# Original solution
N = int(eval(input()))
if N%2==1:
    cnt = 0
else:
    K = N//10
    cnt = K
    n = 5
    while K//n>0:
        cnt += K//n
        n *= 5
print(cnt)

# Optimized solution
N = int(eval(input()))
if N%2==1:
    ans = 0
else:
    n = N//10
    ans = n
    k = 1
    while 5**k<=n:
        ans += n//(5**k)
        k += 1
print(ans)
# Original solution
x=int(eval(input()))
c=0
if x%2==1:
    print((0))
else:    
    s=0
    l=1
    j=10
    while j<=x:
        s+=(x//j)
        #s+=(x//p)//2
        j*=5
        
    print(s)    
    #print(s+(x//50)//2)

# Optimized solution
x=int(eval(input()))
s=0
if x%2==0:
    p=10
    while(p<=x):
        s+=x//p
        p*=5
print(s)
# Original solution
#!/usr/bin/env python3
import sys, math, itertools, collections, bisect
input = lambda: sys.stdin.buffer.readline().rstrip().decode('utf-8')
inf = float('inf') ;mod = 10**9+7
minans = inf ;ans = 0 ;count = 0 ;pro = 1



n=int(eval(input()))
if n%2==1:
    print((0))
    exit()
k=10
for i in range(1,100):
    count+=n//(k)
    k*=5
print(count)

# Optimized solution
count=0
k=5
n=int(eval(input()))
if n%2==1:
    print((0))
else:
    n//=2
    for i in range(1,100):
        count+=int(n//(k))
        k*=5
    print(count)
# Original solution
N = int(eval(input()))
if N % 2 == 1:
    print((0))
    exit()

ans = 0
mod = 10

while (mod <= N):
    ans += N // mod
    mod *= 5

print(ans)


# Optimized solution
N = int(eval(input()))

ans = 0

if N % 2 == 0:
    mod = 10
    while N >= mod:
        ans += N // mod
        mod *= 5

print(ans)
# Original solution
N = int(eval(input()))

ans = 0

if N % 2 == 0:
    mod = 10
    while N >= mod:
        ans += N // mod
        mod *= 5

print(ans)


# Optimized solution
# def f(n):
#     if n < 2:
#         return 1
#     else:
#         return n * f(n - 2)

# for i in range(2, 150, 2):
#     print(i, f(i))

N = int(eval(input()))

if N % 2 == 1:
    print((0))
    exit()

k = 10
cnt = 0
while k <= N:
    cnt += N // k
    k *= 5

print(cnt)
# Original solution
n = int(eval(input()))
ans = 0
a = 1
na = n
if n % 2 == 1:
    print((0))
else:
    # for i in range(3):
    #     n100 = n // 100
    #     n50 = n // 50
    #     n = n // 10
        
    #     ans += n + n50 - n100
    #     print(n,n50,n100)
    # print(ans)


        # for i in range(1,20):
        #     for j in range(1,40):
        #         ans += (n // ((5**j)*(10**i)))
        #     # ans += (n //(5*10**i))
        # n10 = n // 10
        # print(ans+n10)

    for j in range(1,40):
        ans += (n // ((5**j)*10))
    n10 = n // 10
    print((ans+n10))

# while na != 0:
#     a *= na
#     na -= 2
# # print(a)
# a = list(str(a))
# i = -1
# cnt = 0
# # print(a)
# while a[i] == "0":
#     cnt += 1
#     i -= 1
# print(cnt)

# Optimized solution
n = int(eval(input()))
ans = 0
if n % 2 == 1:
    print((0))
    exit()

for i in range(50):
    if n >= 10*(5**(i)):
        ans += n//(10*(5**(i)))
print(ans)
# Original solution
N = int(eval(input()))
if N%2 != 0:
    ans = 0
else:
    ans = 0
    for i in range(1,1000):
        ans += N//(2*(5**i))
print(ans)



# Optimized solution
N = int(eval(input()))
if N%2:
    print((0))
    exit()

ans = 0
i = 5
while i < N:
    ans += N//(2*i)
    i *= 5
print(ans)
# Original solution
import math
n = int(eval(input()))
if n%2==1:
    print((0))
else:
    print((sum([n//(2*pow(5,i)) for i in range(1,math.ceil(math.log(n+1,5)))])))

# Optimized solution
from math import ceil, log
n = int(eval(input()))
if n%2==1:
    print((0))
else:
    print((sum([n//(2*pow(5,i)) for i in range(1,ceil(log(n+1,5)))])))
# Original solution
n=int(eval(input()))
if n<=6:
    print((0))
else:
    if n%2==0:
        i=1
        c_of_5=0 
        while 5**i <= n:
            c_of_5+=n//((5**i)*2)
            i+=1
        print(c_of_5)
    else:
        print((0))

# Optimized solution
n=int(eval(input()))
if n%2==0:
    i=1
    c_of_5=0 
    while 5**i <= n:
        c_of_5+=n//((5**i)*2)
        i+=1
    print(c_of_5)
else:
    print((0))
# Original solution
import sys

n = int(eval(input()))
if n % 2 == 1:
  print((0))
  sys.exit()
ans = 0
x = 2
while n >= x:
  x *= 5
  ans += n // x
print(ans)

# Optimized solution
n = int(eval(input()))
if n%2 == 1:
    print((0))
else:
    x = 10
    ans = 0
    while n >= x:
        ans += n // x
        x *= 5
    print(ans)
# Original solution
n = int(eval(input()))
if n % 2:
    print((0))
else:
    i, k = 0, [1]
    while n > 10*5**i:
        k.append(5*k[i] + 1)
        i += 1  
    ans, r = 0, n
    while i:
        q, r = divmod(r, 10*5**i)
        ans += q*k[i]
        i -= 1
    print((ans + r//10))

# Optimized solution
n = int(eval(input()))
if n % 2:
    print((0))
else:
    memo = [5**(i+1) for i in range(26)]
    print((sum((n//memo[i])//2 for i in range(26))))
# Original solution
n=int(eval(input()))
a=n
count=0
if n%2 == 0:
  for i in range(1,27):
    count+=(n//((5**i)*2))
  print(count)
else:
  print((0))

# Optimized solution
n=int(eval(input()))
 
c=0
i=1
tmp=n//2
while tmp!=0:
  tmp=tmp//5
  c=c+tmp
if n%2==0:
  print((int(c)))
else:
  print((int(0)))
# Original solution
n = int(eval(input()))

if n % 2 == 1:
    print((0))
    exit()
ans = 0
for i in range(1, 100):
    ans += n //(2* 5**i)
print(ans)

# Optimized solution
n = int(eval(input()))

if n % 2 == 1:
    print((0))
    exit()
cnt_5 = 0
for i in range(1, 100):
    cnt_5 += (n // (2 * 5 ** i))

print(cnt_5)
# Original solution
n=int(eval(input()))
if n%2==1:
    print((0))
else:#2,4,6,8,10...
    n=(n//2)
    k=0
    while n>0:
        k+=(n//5)
        n=(n//5)
    print(k)


# Optimized solution
n=int(eval(input()))
if n%2==1:
    print((0))
else:#2,4,6,8,10...
    n=(n//2)
    k=0
    while n>4:
        n=(n//5)
        k+=n
    print(k)