C#实现哥德巴赫猜想

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#实现哥德巴赫猜想相关的知识,希望对你有一定的参考价值。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace GoetheOfArithmetic
{
    class Program
    {
        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();
        }

        static bool ISGDBHArith(int intNum)
        {
            bool blFlag = false;
            if (intNum % 2 == 0 && intNum > 6)
            {
                for (int i = 0; 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;
        }

        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;
        }
    }
}

 

以上是关于C#实现哥德巴赫猜想的主要内容,如果未能解决你的问题,请参考以下文章

C#常用代码片段备忘

哥德巴赫猜想的代码实现和分析

在c#用控制语句完成哥德巴赫猜想(一个大于二的偶数一定是两个质数之和)

C# 最有用的(自定义)代码片段是啥? [关闭]

c#代码片段快速构建代码

此 Canon SDK C++ 代码片段的等效 C# 代码是啥?