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能写成两个素数的和,所以其符合哥德巴赫猜想。
相关推荐
IvanCodes3 小时前
Python 数据处理(十三):JSON、CSV 与数据序列化
开发语言·python
aramae5 小时前
MySQL复合查询(8)
java·c语言·开发语言·后端·算法
淡海水6 小时前
13-04-面试-源码级深度追问链
数据结构·unity·面试·c#·游戏引擎·源码·il2cpp
asdzx677 小时前
如何使用 C# 提取 PPT 文本与图片
c#·ppt·提取文本
qq_2518364577 小时前
springboot vue3 开发实现 拼豆管理系统
java·开发语言·ai编程
郑州光合科技余经理8 小时前
同城外卖小程序开发:下单成功后,后台导出能不能对上用户端状态
开发语言·前端·git·后端·uni-app·php·ai编程
知识分享小能手8 小时前
C++ 学习教程,从入门到精通,C++ 入门知识 — 完整知识点(1)
开发语言·c++·学习
+VX:Fegn08959 小时前
计算机毕业设计|基于springboot + vue旅游管理系统(源码+数据库+文档)
java·开发语言·vue.js·spring boot·课程设计
阿里嘎多学长9 小时前
2026-09-20 GitHub 热点项目精选
开发语言·程序员·github·代码托管
weixin_3077791311 小时前
C++代码实现MATLAB中的ode23tb函数功能
开发语言·c++·算法·matlab