欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用C#驗(yàn)證哥德巴赫猜想的示例代碼

 更新時(shí)間:2024年03月14日 09:58:40   作者:wenchm  
哥德巴赫猜想(Goldbach’s?Conjecture)是數(shù)學(xué)領(lǐng)域的一個(gè)著名猜想,大致內(nèi)容為任何一個(gè)大于2的偶數(shù)都可以表示為兩個(gè)質(zhì)數(shù)之和,下面我們就來看看如何利用C#驗(yàn)證這一猜想呢

1.哥德巴赫猜想

哥德巴赫猜想(Goldbach’s Conjecture)是數(shù)學(xué)領(lǐng)域的一個(gè)著名猜想,由德國數(shù)學(xué)家克里斯蒂安·哥德巴赫(Christian Goldbach)在1742年提出。這個(gè)猜想的內(nèi)容是:任何一個(gè)大于2的偶數(shù)都可以表示為兩個(gè)質(zhì)數(shù)之和。換句話說,哥德巴赫猜想認(rèn)為,對于任意一個(gè)大于2的偶數(shù)n,存在兩個(gè)質(zhì)數(shù)p和q,使得n = p + q。

哥德巴赫猜想的證明對于數(shù)學(xué)領(lǐng)域具有重要意義。它的證明將有助于揭示質(zhì)數(shù)的分布規(guī)律,進(jìn)一步深化我們對數(shù)論的理解。然而,由于哥德巴赫猜想本身的復(fù)雜性,目前數(shù)學(xué)家們還在努力尋找證明它的方法。

2.驗(yàn)證哥德巴赫猜想

雖然哥德巴赫猜想的證明尚未找到,但我們可以通過編程來驗(yàn)證這個(gè)猜想。以下是一個(gè)C#程序,用于驗(yàn)證哥德巴赫猜想:

// 驗(yàn)證哥德巴赫猜想(Goldbach's Conjecture)
namespace _143
{
    class Program
    {
        #region  判斷一個(gè)數(shù)是否是素?cái)?shù)
        /// <summary>
        /// 判斷一個(gè)數(shù)是否是素?cái)?shù)
        /// </summary>
        /// <param name="intNum">要判斷的數(shù)</param>
        /// <returns>如果是,返回true,否則,返回false</returns>
        static bool Prime(int intNum)
        {
            bool blFlag = true;                  //標(biāo)識是否是素?cái)?shù)
            if (intNum == 1 || intNum == 2)      //判斷輸入的數(shù)字是否是1或者2
                blFlag = true;                   //為bool類型變量賦值
            else
            {
                int sqr = Convert.ToInt32(Math.Sqrt(intNum));   
                for (int i = sqr; i >= 2; i--)  //從開方后的數(shù)進(jìn)行循環(huán)
                {
                    if (intNum % i == 0)        //對要判斷的數(shù)字和指定數(shù)字進(jìn)行求余運(yùn)算
                    {
                        blFlag = false;         //如果余數(shù)為0,說明不是素?cái)?shù)
                    }
                }
            }
            return blFlag;                      //返回bool型變量
        }
        #endregion
 
        #region 判斷一個(gè)數(shù)是否符合哥德巴赫猜想
        /// <summary>
        /// 判斷一個(gè)數(shù)是否符合哥德巴赫猜想
        /// </summary>
        /// <param name="intNum">要判斷的數(shù)</param>
        /// <returns>如果符合,返回true,否則,返回false</returns>
        static bool GoldbachConjecture(int intNum)
        {
            bool blFlag = false;                  //標(biāo)識是否符合哥德巴赫猜想
            if (intNum % 2 == 0 && intNum > 2)    //對要判斷的數(shù)字進(jìn)行判斷
            {
                for (int i = 1; i <= intNum / 2; i++)
                {
                    bool bl1 = Prime(i);         //判斷i是否為素?cái)?shù)
                    bool bl2 = Prime(intNum - i);//判斷intNum-i是否為素?cái)?shù)
                    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("輸入一個(gè)大于2的偶數(shù):");          //提示輸入信息
            int intNum = Convert.ToInt32(Console.ReadLine()); //記錄輸入的數(shù)字
            bool blFlag = GoldbachConjecture(intNum);         //判斷是否符合哥德巴赫猜想
            if (blFlag)                                       //如果為true,說明符合,并輸出信息
            {
                Console.WriteLine("{0}能寫成兩個(gè)素?cái)?shù)的和,所以其符合哥德巴赫猜想。", intNum);
            }
            else
            {
                Console.WriteLine("猜想錯(cuò)誤。");
            }
            Console.ReadLine();
        }
    }
}

結(jié)果:

輸入一個(gè)大于2的偶數(shù):
6
6=1+5
6=3+3
6能寫成兩個(gè)素?cái)?shù)的和,所以其符合哥德巴赫猜想。
 
輸入一個(gè)大于2的偶數(shù):
100
100=3+97
100=11+89
100=17+83
100=29+71
100=41+59
100=47+53
100能寫成兩個(gè)素?cái)?shù)的和,所以其符合哥德巴赫猜想。
 
輸入一個(gè)大于2的偶數(shù):
98
98=1+97
98=19+79
98=31+67
98=37+61
98能寫成兩個(gè)素?cái)?shù)的和,所以其符合哥德巴赫猜想。

3.方法補(bǔ)充

除了上文的代碼,小編還為大家大家整理了其他C#驗(yàn)證哥德巴赫猜想的相關(guān)代碼,希望對大家有所幫助

方法一

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

namespace norm_program
{
   class Program
   {
       static void Main(string[] args)
       {
           int n=0, i=0, j, k, p1, p2;//定義兩個(gè)素?cái)?shù)p1、p2,n為6~100之間能由兩個(gè)素?cái)?shù)表示的偶數(shù);
           for (p1 = 2; p1 < 101; p1++)//依據(jù)定義1不是素?cái)?shù),素?cái)?shù)p1從2開始;
           {
               for (p2 = 2; p2 < 101; p2++)//素?cái)?shù)p2從2開始實(shí)現(xiàn)遍歷;
               {
                   //由素?cái)?shù)定義:素?cái)?shù)p僅能被1或其本身整除,即從2開始至根號n中有任一數(shù)能將n整除的數(shù)都不為素?cái)?shù);
                   k = (int)Math.Sqrt(p2);
                   for (j = 2; j <= k; j++)
                       if (p2 % j == 0)
                           break;
                   if (j > k)//p2為素?cái)?shù),接著判斷p1;
                   {
                       k = (int)Math.Sqrt(p1);
                       for (j = 2; j <= k; j++)
                           if (p1 % j == 0)
                               break;
                       if (j > k)//p1、p2都為素?cái)?shù),判斷其和是否滿足條件;
                       {
                           n = p1 + p2;
                           if (n >= 6 && n <= 100 && n % 2 == 0)
                           {
                            Console.Write("{0}={1}+{2}\t\t", n, p1, p2);
                               i++;  
                               if(i % 5 == 0&&i!=0)//用以計(jì)數(shù)換行;
                               Console.Write("\n"); 
                           }                          
                       }                                          
                   }
               }
           }
           Console.ReadLine();
       }
   }
}

方法二

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

namespace 作業(yè)3_2
{
    class Program
    {
        static void Main(string[] args)
        {
            int zhishu(int a)
            {
                int t = 0;
                for (int i = 2; i <= a; i++)
                {
                    if (a % i == 0)
                        t++;
                }
                if (t == 1)
                    return 1;
                else
                    return 0;
            }
            string s = null; int zu = 0;
            for (int a = 6; a < 101;)
            {
                for (int b = 3; b <= a / 2; b++)
                    if (zhishu(b) == 1 && zhishu(a - b) == 1)
                    {
                        s += a.ToString() + "=" + b.ToString() + "+" + (a - b).ToString() + "     ";
                        zu++;
                        if (zu == 5)
                        {
                            Console.Write("{0}\r\n", s);
                            s = null;
                            zu = 0;
                        }
                    }
                a = a + 2;
            }

            Console.ReadLine(); 
        }
    }
}

到此這篇關(guān)于利用C#驗(yàn)證哥德巴赫猜想的示例代碼的文章就介紹到這了,更多相關(guān)C#哥德巴赫猜想內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • c#制作簡單啟動畫面的方法

    c#制作簡單啟動畫面的方法

    這篇文章主要介紹了c#制作簡單啟動畫面的方法,涉及C#實(shí)現(xiàn)桌面程序啟動畫面的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • C#中 const 和 readonly 的不同

    C#中 const 和 readonly 的不同

    const 和 readonly 的區(qū)別,總是不太清楚,于是查了查資料。
    2013-04-04
  • C#中is與as的區(qū)別分析

    C#中is與as的區(qū)別分析

    這篇文章主要介紹了C#中is與as的區(qū)別,較為詳細(xì)的分析了is與as的原理與特性及用法區(qū)別,具有很好的學(xué)習(xí)借鑒價(jià)值,需要的朋友可以參考下
    2014-10-10
  • C#讀寫配置文件方式(config.ini)入門

    C#讀寫配置文件方式(config.ini)入門

    這篇文章主要介紹了C#讀寫配置文件方式(config.ini)入門,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • C#使用Directoryinfo類獲得目錄信息和屬性的方法

    C#使用Directoryinfo類獲得目錄信息和屬性的方法

    這篇文章主要介紹了C#使用Directoryinfo類獲得目錄信息和屬性的方法,涉及C#操作目錄的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • 基于C#技術(shù)實(shí)現(xiàn)身份證識別功能

    基于C#技術(shù)實(shí)現(xiàn)身份證識別功能

    這篇文章主要介紹了基于C#技術(shù)實(shí)現(xiàn)身份證識別功能的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-07-07
  • WPF中下拉框可作選擇項(xiàng)也可以作為只讀文本框使用的方法

    WPF中下拉框可作選擇項(xiàng)也可以作為只讀文本框使用的方法

    這篇文章主要給大家介紹了關(guān)于WPF中下拉框可以選擇項(xiàng)也可以作為只讀文本框使用的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2023-02-02
  • Unity 使用TexturePacker打包圖集的操作方法

    Unity 使用TexturePacker打包圖集的操作方法

    這篇文章主要介紹了Unity 使用TexturePacker打包圖集的操作方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • C#固定大小緩沖區(qū)及使用指針復(fù)制數(shù)據(jù)詳解

    C#固定大小緩沖區(qū)及使用指針復(fù)制數(shù)據(jù)詳解

    這篇文章主要為大家介紹了C#固定大小緩沖區(qū)及使用指針復(fù)制數(shù)據(jù)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • C#開發(fā)Windows UWP系列之對話框MessageDialog和ContentDialog

    C#開發(fā)Windows UWP系列之對話框MessageDialog和ContentDialog

    這篇文章介紹了C#開發(fā)Windows UWP系列之對話框MessageDialog和ContentDialog,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06

最新評論