main=do
 n<-readLn
 print$length$filter(f n)$(g n)++(g$n-1)
f n x
 |x==1=False
 |n`mod`x==0=f(n`div`x)x
 |otherwise=n`mod`x==1
g n=foldr f []$takeWhile((n>=).(^2))[1..n]
 where
  f i s
   |n`mod`i==0&&i*i<n=i:n`div`i:s
   |n`mod`i==0=i:s
   |otherwise=s