C# 歌德巴赫猜想。
时间:2010-12-16 来源:胖子黎
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
classProgram
{
staticvoid Main(string[]args)
{
Console.WriteLine("请输入一个数大于6");
intintNum = Convert.ToInt32(Console.ReadLine());
boolblFlag = IsGDBHArith(intNum);
if(blFlag)
{
Console.WriteLine("OK");
}
else
{
Console.WriteLine("不是");
}
Console.ReadLine();
}
/// <summary>
/// 判断一个数是否是素数
/// </summary>
/// <paramname="intNum">要判断的数</param>
/// <returns>如果是,返回True,不是,反回false</returns>
staticbool IsPrimeNumber(intintNum)
{
boolblFlag = 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;
}
}
}
returnblFlag;
}
/// <summary>
/// 是否是整数而且大于6,再调用IsPrimeNumber(intintNumb)方法判断这个数是不是素数
/// </summary>
/// <paramname="intNum">要判断的数</param>
/// <returns>true,false</returns>
staticbool IsGDBHArith(intintNum)
{
boolblFlag = false;
if(intNum % 2 == 0 && intNum > 6)
{
for(int i = 0; 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;
}
}
}
returnblFlag;
}
}
}