C#验证哥德巴赫猜想

目录

1.哥德巴赫猜想

2.验证哥德巴赫猜想


1.哥德巴赫猜想

哥德巴赫猜想(Goldbach's Conjecture)是数学领域的一个著名猜想,由德国数学家克里斯蒂安·哥德巴赫(Christian Goldbach)在1742年提出。这个猜想的内容是:任何一个大于2的偶数都可以表示为两个质数之和。换句话说,哥德巴赫猜想认为,对于任意一个大于2的偶数n,存在两个质数p和q,使得n = p + q。

哥德巴赫猜想的证明对于数学领域具有重要意义。它的证明将有助于揭示质数的分布规律,进一步深化我们对数论的理解。然而,由于哥德巴赫猜想本身的复杂性,目前数学家们还在努力寻找证明它的方法。

2.验证哥德巴赫猜想

虽然哥德巴赫猜想的证明尚未找到,但我们可以通过编程来验证这个猜想。以下是一个C#程序,用于验证哥德巴赫猜想:

cs 复制代码
// 验证哥德巴赫猜想(Goldbach's Conjecture)
namespace _143
{
    class Program
    {
        #region  判断一个数是否是素数
        /// <summary>
        /// 判断一个数是否是素数
        /// </summary>
        /// <param name="intNum">要判断的数</param>
        /// <returns>如果是,返回true,否则,返回false</returns>
        static bool Prime(int intNum)
        {
            bool blFlag = true;                  //标识是否是素数
            if (intNum == 1 || intNum == 2)      //判断输入的数字是否是1或者2
                blFlag = true;                   //为bool类型变量赋值
            else
            {
                int sqr = Convert.ToInt32(Math.Sqrt(intNum));   
                for (int i = sqr; i >= 2; i--)  //从开方后的数进行循环
                {
                    if (intNum % i == 0)        //对要判断的数字和指定数字进行求余运算
                    {
                        blFlag = false;         //如果余数为0,说明不是素数
                    }
                }
            }
            return blFlag;                      //返回bool型变量
        }
        #endregion

        #region 判断一个数是否符合哥德巴赫猜想
        /// <summary>
        /// 判断一个数是否符合哥德巴赫猜想
        /// </summary>
        /// <param name="intNum">要判断的数</param>
        /// <returns>如果符合,返回true,否则,返回false</returns>
        static bool GoldbachConjecture(int intNum)
        {
            bool blFlag = false;                  //标识是否符合哥德巴赫猜想
            if (intNum % 2 == 0 && intNum > 2)    //对要判断的数字进行判断
            {
                for (int i = 1; i <= intNum / 2; i++)
                {
                    bool bl1 = Prime(i);         //判断i是否为素数
                    bool bl2 = Prime(intNum - i);//判断intNum-i是否为素数
                    if (bl1 & bl2)
                    {
                        Console.WriteLine("{0}={1}+{2}", intNum, i, intNum - i);
                        blFlag = true;           //符合哥德巴赫猜想
                    }
                }
            }
            return blFlag;                       //返回bool型变量
        }
        #endregion

        static void Main(string[] args)
        {
            if (args is null)
            {
                throw new ArgumentNullException(nameof(args));
            }

            Console.WriteLine("输入一个大于2的偶数:");          //提示输入信息
            int intNum = Convert.ToInt32(Console.ReadLine()); //记录输入的数字
            bool blFlag = GoldbachConjecture(intNum);         //判断是否符合哥德巴赫猜想
            if (blFlag)                                       //如果为true,说明符合,并输出信息
            {
                Console.WriteLine("{0}能写成两个素数的和,所以其符合哥德巴赫猜想。", intNum);
            }
            else
            {
                Console.WriteLine("猜想错误。");
            }
            Console.ReadLine();
        }
    }
}
cs 复制代码
输入一个大于2的偶数:
6
6=1+5
6=3+3
6能写成两个素数的和,所以其符合哥德巴赫猜想。

输入一个大于2的偶数:
100
100=3+97
100=11+89
100=17+83
100=29+71
100=41+59
100=47+53
100能写成两个素数的和,所以其符合哥德巴赫猜想。

输入一个大于2的偶数:
98
98=1+97
98=19+79
98=31+67
98=37+61
98能写成两个素数的和,所以其符合哥德巴赫猜想。
相关推荐
我命由我123451 小时前
微信小程序开发 - 为 tap 事件的处理函数传递数据
开发语言·前端·javascript·微信小程序·小程序·前端框架·js
我是唐青枫2 小时前
C# 泛型数学:解锁真正的类型安全数值运算
c#·.net
故事不长丨7 小时前
C#定时器与延时操作的使用
开发语言·c#·.net·线程·定时器·winform
hefaxiang7 小时前
C语言常见概念(下)
c语言·开发语言
欧阳天风7 小时前
js实现鼠标横向滚动
开发语言·前端·javascript
阿桂有点桂8 小时前
C#使用VS软件打包msi安装包
windows·vscode·c#
c#上位机8 小时前
halcon图像增强之分段灰度拉伸2
c#·上位机·halcon·机器视觉
yue0088 小时前
C# Directory的用法介绍
开发语言·c#
雨落秋垣8 小时前
手搓 Java 的用户行为跟踪系统
java·开发语言·linq
爱丽_9 小时前
深入理解 Java Socket 编程与线程池:从阻塞 I/O 到高并发处理
java·开发语言