アルゴリズムのコドバッハ予想

4503 ワード

using System;



namespace Test

{

    class Program

    {



        /// <summary>

        ///     

        /// </summary>

        /// <param name="n"></param>

        /// <returns></returns>

        static bool IsPrime(int n)

        {

            int j = (int)Math.Ceiling(Math.Sqrt(Convert.ToDouble(n)));

            bool intFlag = true;

            for (int i = 1; i <= j; i++)

            {

                if (n % i == 0 && (i != 1) && (i != n))

                {

                    intFlag = false;

                    break;

                }

            }

            return intFlag;



        }

        /// <summary>

        ///                  

        ///   6                

        /// </summary>

        /// <param name="n"></param>

        /// <returns></returns>

        static bool IsGDBHArish(int n)

        {

            bool isG = false;

            if (n % 2 == 0 && n > 6)

            {

                for (int i = 1; i < n / 2; i++)

                {

                    bool b1 = IsPrime(i);

                    bool b2 = IsPrime(n - i);

                    if (b1 & b2)

                    {

                        Console.WriteLine("{0}={1}+{2}", n, i, n - i);

                        isG = true;

                    }



                }

            }

            return isG;

        }



       



        static void Main(string[] args)

        {

            //////  

            int n = 1;



            while (n != -1)

            {

                Console.WriteLine("");



                if (Int32.TryParse(Console.ReadLine(), out n))

                {

                    if (n == -1)

                        break;

                    //if (Program.IsPrime(n))

                    //{

                    //    Console.WriteLine("{0}   ", n);

                    //}

                    //else

                    //{

                    //    Console.WriteLine("{0}    ", n);

                    //}



                    IsGDBHArish(n);

                }

                

            }





            Console.ReadLine();

        }

    }

}