哥德巴赫猜想

来源:互联网 发布:怎么制作视频软件 编辑:程序博客网 时间:2024/06/11 00:28

哥德巴赫猜想算法(C#)

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace GDBHArith{    class Program    {        #region 判断一个数是否是素数        /// <summary>        /// 判断一个数是否是素数        /// </summary>        /// <param name="intNum">要判断的数</param>        /// <returns>如果是,返回True;否则返回False</returns>        static bool IsPrimeNumber(int intNum)        {            bool blFlag = true;            if (intNum == 1 || intNum == 2)                blFlag = true;            else            {                int sqr = Convert.ToInt32(Math.Sqrt(intNum));                for (int i = sqr; i >= 2; i--)                {                    if (intNum % i == 0)                    {                        blFlag = false;                    }                }            }            return blFlag;        }        #endregion        #region 判断一个数是否符合哥德巴赫猜想        /// <summary>        /// 判断一个数是否符合哥德巴赫猜想        /// </summary>        /// <param name="intNum"></param>        /// <returns>如果是,返回True;否则返回False</returns>        static bool ISGDBHArith(int intNum)        {            bool blFlag = false;            if (intNum % 2 == 0 && intNum > 6)            {                for (int i = 1; i <= intNum / 2; i++)                {                    bool bl1 = IsPrimeNumber(i);                    bool bl2 = IsPrimeNumber(intNum - i);                    if (bl1 & bl2)                    {                        Console.WriteLine("{0}={1}+{2}", intNum, i, intNum - i);                        blFlag = true;                    }                }            }            return blFlag;        }        #endregion        static void Main(string[] args)        {            Console.WriteLine("输入一个大于6的偶数:");            int intNum = Convert.ToInt32(Console.ReadLine());            bool blFlag = ISGDBHArith(intNum);            if (blFlag)            {                Console.WriteLine("{0}能写成两个素数的和,所以其符合哥德巴赫猜想。", intNum);            }            else            {                Console.WriteLine("猜想错误。");            }            Console.ReadLine();        }    }}
0 0
原创粉丝点击