東大卒のお金やりくり奮闘記~株、家計、趣味、経済~

東大卒でメーカー勤務の私がセミリタイアするために投資や競プロを頑張っていこうという趣旨で始めたブログです。既婚男性です。株、家計、趣味、経済の話をメインにゆるゆる話します。

ABC190で書いたコード

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 = 0i < ni++)
            {
                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 = 0i < mi++)
            {
                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 = 0i < ki++)
            {
                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 = 0i < (1 << k); i++)
            {
                long e = new long[n];
                //それぞれのケースでボールを置く
                for (int j = 0j < kj++)
                {
                    if (((i >> j) & 1) == 0)
                        e[c[j]]++;
                    else
                        e[d[j]]++;
                }

                int count = 0;
                //満たす条件数を求める
                for (int j = 0j < mj++)
                {
                    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 = 1i <= 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);

        }
    }


    

}