歌德巴赫猜想的C#语言算法实现
歌德巴赫猜想:任何一个大于6的偶数都可以写为两个素数之和。
看代码:
- using System;
- using System.Collections.Generic;
- using System.Text;
- namespace ExGoldbachConjecture
- {
- class GoldbachConjecture
- {
- public bool IsPrimeNumber(int n)
- {
- bool b = true;
- if (n == 1 || n == 2)
- b = true;
- else
- {
- int sqr = Convert.ToInt32(Math.Sqrt(n));
- for (int i = sqr; i >= 2; i--)
- {
- if (n % i == 0)
- {
- b = false;
- }
- }
- }
- return b;
- }
- public bool goldbachConjecture(int n)
- {
- bool b = false;
- if (n % 2 == 0 && n > 6)
- {
- for (int i = 1; i <= n / 2; i++)
- {
- bool b1 = IsPrimeNumber(i);//判断i是否为素数
- bool b2 = IsPrimeNumber(n - i);//判断n-i是否为素数
- if (b1 & b2)
- {
- Console.WriteLine("{0}={1}+{2}",n,i,n-i);
- b = true;
- }
- }
- }
- return b;
- }
- static void Main(string[] args)
- {
- Console.WriteLine("输入一个大于6的偶数");
- int n = Convert.ToInt32(Console .ReadLine ());
- GoldbachConjecture g=new GoldbachConjecture ();
- bool b = g.goldbachConjecture(n);
- if (b)
- {
- Console.WriteLine("{0}能写成两个素数的和。", n);
- }
- else
- {
- Console.WriteLine("猜想错误。");
- }
- }
- }
- }
注:本文转自 http://blog.csdn.net/gisfarmer/archive/2009/02/03/3860584.aspx
<script type="text/JavaScript"></script> <script src="http://a.alimama.cn/inf.js" type="text/javascript"></script>