如何获取素数(c#windows窗体应用程序中的哥德巴赫猜想)
我正在创建一个基于哥德巴赫猜想的windows窗体应用程序。我的问题是,我总是得到奇数而不是素数。我怎样才能只得到素数?这就是我到目前为止所做的 我在控制台应用程序中找到了一些代码,我曾尝试将这些代码放入windows窗体应用程序中,但我不知道如何操作。任何帮助都将不胜感激,谢谢 程序接受偶数输入,然后显示所有可能的组合 e、 g。 投入:14 产出:3+11;7+7 但我得到的是 投入:14 产出:3+11;5+9; 7+7; 9+5; **很抱歉删除如何获取素数(c#windows窗体应用程序中的哥德巴赫猜想),c#,primes,C#,Primes,我正在创建一个基于哥德巴赫猜想的windows窗体应用程序。我的问题是,我总是得到奇数而不是素数。我怎样才能只得到素数?这就是我到目前为止所做的 我在控制台应用程序中找到了一些代码,我曾尝试将这些代码放入windows窗体应用程序中,但我不知道如何操作。任何帮助都将不胜感激,谢谢 程序接受偶数输入,然后显示所有可能的组合 e、 g。 投入:14 产出:3+11;7+7 但我得到的是 投入:14 产出:3+11;5+9; 7+7; 9+5; **很抱歉删除 using System.Compone
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);
}
}
}
使用System.ComponentModel;
使用系统数据;
使用系统图;
使用System.Linq;
使用系统文本;
使用System.Windows.Forms;
名称空间案例研究
{
公共部分类frmGBC:表单
{
公共frmGBC()
{
初始化组件();
}
绳夹,绳夹2;
私有void btnSubmit\u单击(对象发送者,事件参数e)
{
int number=int.Parse(txtInput.Text);
如果(数字%2==0)
{
lvContainer.Items.Add(“输入:“+number+”:\n”);
lvContainer.Items.Add(“解决方案:”);
}
如果(数字<1001)
{
如果(数字<2)
{
MessageBox.Show(“必须大于2!”);
持有人=”;
}
如果(数字%2==0)
{
如果(编号%2==0&&number=10)
{
对于(int i=3;i
您做得很好,但在将其添加到holder之前,您忘记检查for循环中的素数。我有一个函数,我只是编写代码,可能对您很方便。(这不是检查素数的最佳方法)
bool-isprime(int-num)
{
如果(num检查素数的算法在哪里?如果你有,请原谅我,我没有看到……。检查素数的算法在loop@rjsu你是在问寻找素数的正确算法,还是在问winforms中的教程?这是家庭作业吗?我是在问如何获得获得素数n的正确算法戈德巴赫猜想中使用的数字。具体来说,这是一个案例研究请解释for(int i=3;i
是如何检查素数的算法。哦,我的天啊,非常感谢你!这解决了我的问题!我真的很感谢你的帮助:)@rjsu没问题,编程愉快!!
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;
}
}