我最亲爱的说

子非鱼,焉知鱼之乐.

导航

编程实践6-6

编程实践6-6

课程元素类型 任务

歌德巴赫猜想:任何一个大于等于6的偶数可以分解为两个素数的和,通过程序来实现对哥德巴赫猜想的验证。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Prime_number
{
    class Program
    {
        static void Main(string[] args)
        {
            int nA,nB;
            //输入部分
            nA = Convert.ToInt32(Console.ReadLine());

            nB = ChaiFen(nA);
            //判断是否为素数
            if (nB == 0)
            {
                Console.WriteLine("您输入的数 {0} 无法拆分成两个素数", nA);
            }
            else
            {
                Console.WriteLine("您输入的数 {0} 可以分成两个素数,为{1}  {2}", nA,nB,nA - nB);
            }

            Console.ReadKey();

        }
        public static bool prime(int iA)
        {
            for (int i = 2; i <= Math.Sqrt(iA); i++)
            {
                if (iA % i == 0)
                {
                    return false;
                }
            }
            //到这里说明不是素数 返回true
            return true;

        }
        public static int ChaiFen(int iA)
        {

            int i;
            bool bA, bB;

            for (i = 3; i <= Math.Sqrt(iA); i = i + 2)
            {
                bA = prime(i);
                if (bA)
                {
                    bB = prime(iA - i);
                    if (bA)
                    {
                        return i;
                    }
                }
            }
            return 0;

        }
    }
}

 

posted on 2012-12-12 08:58  我最亲爱的说  阅读(148)  评论(0编辑  收藏  举报