如何获得素数(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);
}
}
}
您做了一项很好的工作,但在将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;
}
}
**我删除了他的代码部分,因为他说有人在偷他的代码。很抱歉