我正在创建一个关于哥德巴赫猜想的窗体应用程序。我的问题是,我不断得到奇数而不是素数。我怎么才能得到素数?这是我到目前为止所做的事情
我发现了一些控制台应用程序中的代码,我尝试将其放入windows窗体应用程序中,但我不知道如何操作。任何帮助将不胜感激!
程序接受偶数输入,然后显示所有可能的组合
e.g。 输入: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);
}
}
}
答案 0 :(得分:0)
你做了很好的工作,但在将它添加到持有者之前忘记检查for循环中的素数。我有一个函数,我只是编写代码,可能对你很方便。(不是检查素数的最佳方法)
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;
}
}
**我删除了他的代码部分,因为他说有人在偷他的代码。遗憾!!