using System; namespace Test { class Program { /// <summary> /// 判断素数 /// </summary> /// <param name="n"></param> /// <returns></returns> static bool IsPrime(int n) { int j = (int)Math.Ceiling(Math.Sqrt(Convert.ToDouble(n))); bool intFlag = true; for (int i = 1; i <= j; i++) { if (n % i == 0 && (i != 1) && (i != n)) { intFlag = false; break; } } return intFlag; } /// <summary> /// 输入一个数判断是否符合哥德巴赫猜想 /// 大于6的偶数都可以表示成为两个素数之和 /// </summary> /// <param name="n"></param> /// <returns></returns> static bool IsGDBHArish(int n) { bool isG = false; if (n % 2 == 0 && n > 6) { for (int i = 1; i < n / 2; i++) { bool b1 = IsPrime(i); bool b2 = IsPrime(n - i); if (b1 & b2) { Console.WriteLine("{0}={1}+{2}", n, i, n - i); isG = true; } } } return isG; } static void Main(string[] args) { //素数 int n = 1; while (n != -1) { Console.WriteLine("请输入一个数:"); if (Int32.TryParse(Console.ReadLine(), out n)) { if (n == -1) break; //if (Program.IsPrime(n)) //{ // Console.WriteLine("{0}是素数", n); //} //else //{ // Console.WriteLine("{0}不是素数", n); //} IsGDBHArish(n); } } Console.ReadLine(); } } }
转载于:https://www.cnblogs.com/NewLand/archive/2010/03/29/1699204.html