歌德巴赫猜想的C#语言算法实现
歌德巴赫猜想的C#语言算法实现
歌德巴赫猜想:任何一个大于6的偶数都可以写为两个素数之和。
看代码:
- usingSystem;
- usingSystem.Collections.Generic;
- usingSystem.Text;
- namespaceExGoldbachConjecture
- {
- classGoldbachConjecture
- {
- publicboolIsPrimeNumber(intn)
- {
- boolb=true;
- if(n==1||n==2)
- b=true;
- else
- {
- intsqr=Convert.ToInt32(Math.Sqrt(n));
- for(inti=sqr;i>=2;i--)
- {
- if(n%i==0)
- {
- b=false;
- }
- }
- }
- returnb;
- }
- publicboolgoldbachConjecture(intn)
- {
- boolb=false;
- if(n%2==0&&n>6)
- {
- for(inti=1;i<=n/2;i++)
- {
- boolb1=IsPrimeNumber(i);//判断i是否为素数
- boolb2=IsPrimeNumber(n-i);//判断n-i是否为素数
- if(b1&b2)
- {
- Console.WriteLine("{0}={1}+{2}",n,i,n-i);
- b=true;
- }
- }
- }
- returnb;
- }
- staticvoidMain(string[]args)
- {
- Console.WriteLine("输入一个大于6的偶数");
- intn=Convert.ToInt32(Console.ReadLine());
- GoldbachConjectureg=newGoldbachConjecture();
- boolb=g.goldbachConjecture(n);
- if(b)
- {
- Console.WriteLine("{0}能写成两个素数的和。",n);
- }
- else
- {
- Console.WriteLine("猜想错误。");
- }
- }
- }
- }
注:本文转自 http://blog.csdn.net/gisfarmer/archive/2009/02/03/3860584.aspx