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能写成两个素数的和,所以其符合哥德巴赫猜想。
相关推荐
醇醛酸醚酮酯23 分钟前
Qt项目锻炼——TODO清单(二)
开发语言·数据库·qt
jioulongzi29 分钟前
记录一次莫名奇妙的跨域502(badgateway)错误
开发语言·python
向阳@向远方1 小时前
第二章 简单程序设计
开发语言·c++·算法
Mr_Xuhhh2 小时前
信号与槽的总结
java·开发语言·数据库·c++·qt·系统架构
纳兰青华2 小时前
bean注入的过程中,Property of ‘java.util.ArrayList‘ type cannot be injected by ‘List‘
java·开发语言·spring·list
好开心啊没烦恼2 小时前
Python 数据分析:DataFrame,生成,用字典创建 DataFrame ,键值对数量不一样怎么办?
开发语言·python·数据挖掘·数据分析
liulilittle2 小时前
VGW 虚拟网关用户手册 (PPP PRIVATE NETWORK 基础设施)
开发语言·网络·c++·网关·智能路由器·路由器·通信
Devil枫2 小时前
Kotlin高级特性深度解析
android·开发语言·kotlin
ChinaDragonDreamer2 小时前
Kotlin:2.1.20 的新特性
android·开发语言·kotlin
安之若素^2 小时前
启用不安全的HTTP方法
java·开发语言