首页 > 解决方案 > 从列表框到文本框的素数

问题描述

我想通过从 LISTBOX 到 textbox 的按钮显示素数。该界面正确显示素数,但仅从 1 到 10 ,之后算法更改并将非素数显示为素数,例如 44 。

 private void primnr()
    {
        int n = listBox1.Items.Count;
        bool prim = true;
        for (int i = 2; i < n; i++)
        {

            for (int j = 2; j <n; j++)
            {
                if (i!=j && i%j==0)
                {
                    prim = false;
                    break;
                }
            }
            if (prim)
            {
                textBox2.Text = textBox2.Text + "Numar prim: " + listBox1.Items[i].ToString() + Environment.NewLine;
            }
            prim = true;
        }



    }

标签: c#visual-studiobuttontextboxlistbox

解决方案


你的算法很好,尽管 j 没有必要超过 i 值的一半。https://dotnetfiddle.net/ZafFsb打印:

2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47,

所以我会说你的问题是存储的值listBox1.Items[i],确定Items[43] = 43吗?附加断点并检查值。


推荐阅读