經典演算法之哥德巴赫猜想
阿新 • • 發佈:2019-02-11
哥德巴赫猜想:任意一個大於6的偶數都可以寫成兩個素數的和(素數:除了1和它本身以外不再被其他的除數整除。)
思想:1.將大於6的偶數拆成任意兩個數<span style="font-size:18px;">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.Read(); } 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; } static bool ISGDBHArith(int intNum) { bool blFLag = false; if (intNum % 2 == 0 && intNum > 6) { for (int i = 1; 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; } }</span>
2.判斷這兩個數是否為素數