如何获得素数(c窗体应用程序中的哥德巴赫猜想)

本文关键字:的哥 猜想 应用程序 何获得 窗体 | 更新日期: 2023-09-27 18:22:48

我正在创建一个windows形式的goldbach猜想应用程序。我的问题是,我总是得到奇数而不是素数。我怎样才能只得到素数?这就是我到目前为止所做的

我在控制台应用程序中发现了一些代码,我试图将这些代码放在windows窗体应用程序中,但我不知道如何做到。任何帮助都将不胜感激,谢谢!

程序接受偶数的输入,然后显示所有可能的组合

例如。输入:14

输出:3+11;7+7

但我得到的是

输入:14

输出:3+11;5+9;7+7;9+5;

**抱歉删除

using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Case_Study
{
    public partial class frmGBC : Form
    {
        public frmGBC()
        {
            InitializeComponent();
        }
        String holder, holder2;
        private void btnSubmit_Click(object sender, EventArgs e)
        {
            int number = int.Parse(txtInput.Text);
            if (number % 2 == 0)
            {
                lvContainer.Items.Add("Input: " + number + ":'n");
                lvContainer.Items.Add("Solutions:");
            }
            if (number < 1001)
            {
                if (number < 2)
                {
                    MessageBox.Show("Must be greater than 2!");
                    holder = "";
                }
                    if (number % 2 == 0)
                    {
                        if (number % 2 == 0 && number <= 1000 && number >= 10)
                        {
                            for (int i = 3; i < number - 3; i += 2)
                            {
                                holder =+ i + " + " + (number - i) + "; ";
                            }
                        }
                        if (number % 2 == 0 && number <= 8 && number >= 4)
                        {
                            for (int i = 3; i < number; i += 2)
                            {
                                holder =i + " + " + (number - i) + ";";
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("Must be even number!");
                    }
                }
            else
            {
                MessageBox.Show("Maximum input is 1000!");
            }
        }
        private void frmGBC_Load(object sender, EventArgs e)
        {
            lvContainer.Columns.Add("Goldbach's Conjecture", 118);
        }
    }
}

如何获得素数(c窗体应用程序中的哥德巴赫猜想)

您做了一项很好的工作,但在将for循环添加到holder之前,忘记检查它中的素数。我有一个函数,我只是编写代码,可能对您很方便。(不是检查prime的最佳方法)

        bool isprime(int num)
    {
        if(num<2)
        {
            return false;
        }
        else if(num==2)
        {
            return true;
        }
        else
        {
            for(int i=2; i<=num/2;i++)
            {
                if(num % i==0)
                {
                    return false;
                }
            }
            return true;
        }
    }

**我删除了他的代码部分,因为他说有人在偷他的代码。很抱歉