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能写成两个素数的和,所以其符合哥德巴赫猜想。
相关推荐
niu_sama几秒前
基于muduo库函数实现protobuf协议的通信
开发语言·qt
不写八个2 分钟前
Qt教程(001):Qt概述与安装
开发语言·qt
quaer8 分钟前
Open-Sora全面开源?
开发语言·算法·机器学习·matlab·矩阵
hakesashou12 分钟前
python如何比较字符串
linux·开发语言·python
Death20028 分钟前
Qt 3D、QtQuick、QtQuick 3D 和 QML 的关系
c语言·c++·qt·3d·c#
yufei-coder37 分钟前
C#基础语法
开发语言·c#·.net
长天一色37 分钟前
【ECMAScript 从入门到进阶教程】第三部分:高级主题(高级函数与范式,元编程,正则表达式,性能优化)
服务器·开发语言·前端·javascript·性能优化·ecmascript
yngsqq42 分钟前
031集——文本文件按空格分行——C#学习笔记
笔记·学习·c#
_.Switch1 小时前
Python机器学习模型的部署与维护:版本管理、监控与更新策略
开发语言·人工智能·python·算法·机器学习
醉颜凉1 小时前
银河麒麟桌面操作系统修改默认Shell为Bash
运维·服务器·开发语言·bash·kylin·国产化·银河麒麟操作系统