C# 如何找到并写出两个数之间的素数?
我是编程界的新手,我想从c#和一些素数开始。 我试着从用户那里得到两个数字,然后检查这两个数字之间是否有素数,当然可以在另一个文本框中打印出来,但似乎我不能用正确的方法。有人能帮忙吗?代码如下:C# 如何找到并写出两个数之间的素数?,c#,C#,我是编程界的新手,我想从c#和一些素数开始。 我试着从用户那里得到两个数字,然后检查这两个数字之间是否有素数,当然可以在另一个文本框中打印出来,但似乎我不能用正确的方法。有人能帮忙吗?代码如下: public partial class Form1 : Form { public Form1() { InitializeComponent(); } int count; private void Button1_Click(object s
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int count;
private void Button1_Click(object sender, EventArgs e)
{
int x = Convert.ToInt32(textBox1.Text);
int y = Convert.ToInt32(textBox2.Text);
for (int c = x; c <= y; c++)
{
for (int i = 1; i <= x; i++)
{
int z = x % i;
if (z == 0)
{
count++;
if (count <= 2)
{
textBox3.Text = x.ToString();
}
}
}
}
}
}
公共部分类表单1:表单
{
公共表格1()
{
初始化组件();
}
整数计数;
私有无效按钮1\u单击(对象发送者,事件参数e)
{
int x=转换为32(textBox1.Text);
int y=转换为32(textBox2.Text);
对于(int c=x;cpublic分部类Form1:Form
{
公共表格1()
{
初始化组件();
}
整数计数;
私有无效按钮1\u单击(对象发送者,事件参数e)
{
int x=转换为32(textBox1.Text);
int y=转换为32(textBox2.Text);
布尔标志=true;
对于(int k=x;k我担心“我似乎不能用正确的方法做它”是非常模糊的。你的代码目前有什么问题?两个观察:你的I
-循环上升到x
,如果不是c
(当然不包括c
本身,或者你总是会找到两个除数)。如果您找到一个数字,textBox3.Text=x.ToString();
将替换文本框的内容,您将需要类似于textBox3.Text+=x.ToString()的内容
。老实说,试着设置一个断点,并使用IDE的Step函数逐行检查代码。内部循环中的每个x
都应该替换为c
。这是一件事。@John我启动了应用程序,写了2个数字“例如20 55”,它只显示了20。问题的第一部分是20不是t素数。我只要求素数。第二部分是即使20是素数,也只显示20。不是21,22,23,24…,55。@CompuChip我按照你说的做了,它有点工作,但它不是我想要的。我在文本框中使用1,10,显示的是1,2。好吧,这是一个开始猜测,但我应该在哪里给我们断点,这样我才能得到整个素数数字?请解释一下你的答案是如何解决OP的问题的。“试试这个->代码”这对理解错误没有多大帮助。它只显示1和数字x的问题消失了,现在它只显示2个数字x,x+1。它不显示素数,只显示数字而不计算。@Yuvraj Mule它也不显示文本框中的数字。我甚至没有想到c这么难学。@ArminShabani我编辑了代码,代码运行正常。在您的代码中,您从1开始的内部循环不正确。当您除以1时,所有数字的z=0。一个可被1整除的数字称为素数。素数只包含2个因子,即1和自身数。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int count;
private void Button1_Click(object sender, EventArgs e)
{
int x = Convert.ToInt32(textBox1.Text);
int y = Convert.ToInt32(textBox2.Text);
Boolean flag = true; ;
for (int k = x; k <= y; k++)
{
// loop the iterations for k times
for (int i = 2; i <k; i++)
{
if ((k % i) == 0)
{
flag = false;
break;
}
}
if (flag == true)
{
if(textBox3.Text!="")
textBox3.Text +=",";
textBox3.Text += k.ToString() ;
}
flag = true;
}
}
}