アルゴリズムのコドバッハ予想
4503 ワード
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();
}
}
}