using System;
using System.Numerics;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace debug
{
class main
{
static void Main(string args)
{
//問題クラスを展開
ProgramD a = new ProgramD();
a.main();//実行する
}
}
//ABC190
class ProgramA
{
public void main()
{
//入力
string s = Console.ReadLine().Split();
//高橋君先行なら高橋君が多く持っていると高橋君、そうでなければ青木君、逆なら、高橋君は青木君以上であればよい
if (int.Parse(s[2]) == 0)
{
if(int.Parse(s[0]) > int.Parse(s[1]))
Console.WriteLine("Takahashi");
else
Console.WriteLine("Aoki");
}
else
{
if (int.Parse(s[0]) >= int.Parse(s[1]))
Console.WriteLine("Takahashi");
else
Console.WriteLine("Aoki");
}
}
}
class ProgramB
{
public void main()
{
//入
string s = Console.ReadLine().Split();
long n = long.Parse(s[0]);
long S = long.Parse(s[1]);
long D = long.Parse(s[2]);//あらかじめ100倍しておく
//毎回比較
for (int i = 0; i < n; i++)
{
string b = Console.ReadLine().Split();
//もしどれかの魔法がS秒未満かつDより大きい力ならおしまい
if (long.Parse(b[0]) < S && long.Parse(b[1]) > D)
{
Console.WriteLine("Yes");
return;
}
}
//もし許容量超えなかったら-1を出力。
Console.WriteLine("No");
}
}
class ProgramC
{
public void main()
{
//入力
string s = Console.ReadLine().Split();
long n = long.Parse(s[0]);
long m = long.Parse(s[1]);
long a = new long[m];
long b = new long[m];
//条件を記録しておく
for (int i = 0; i < m; i++)
{
string s1 = Console.ReadLine().Split();
a[i] = long.Parse(s1[0]) - 1;
b[i] = long.Parse(s1[1]) - 1;
}
int k = int.Parse(Console.ReadLine());
long c = new long[k];
long d = new long[k];
//おけるケースも記録しておく
for (int i = 0; i < k; i++)
{
string s1 = Console.ReadLine().Split();
c[i] = long.Parse(s1[0]) - 1;
d[i] = long.Parse(s1[1]) - 1;
}
long ans = 0;
//ビット全探索で調べる
for (int i = 0; i < (1 << k); i++)
{
long e = new long[n];
//それぞれのケースでボールを置く
for (int j = 0; j < k; j++)
{
if (((i >> j) & 1) == 0)
e[c[j]]++;
else
e[d[j]]++;
}
int count = 0;
//満たす条件数を求める
for (int j = 0; j < m; j++)
{
if (e[a[j]] > 0 && e[b[j]] > 0)
{
count++;
}
}
//最大なら更新
ans = Math.Max(count,ans);
}
//答え出力
Console.WriteLine(ans);
}
}
class ProgramD
{
public void main()
{
//入力
long n = long.Parse(Console.ReadLine());
int count = 0;
//片側が奇数の場合のみ+2する。
for(long i = 1; i <= Math.Sqrt(n);i++)
{
if(n % i == 0)
{
long t1 = i;
long t2 = n / i;
//奇数なら足す
if(t1 % 2 == 1)
{
count += 2;
}
//二乗の場合は被るので無視
if (i * i == n)
continue;
//奇数なら足す
if (t2 % 2 == 1)
{
count += 2;
}
}
}
//出力
Console.WriteLine(count);
}
}
}