按钮,计算 .NET 中的素数,C#

本文关键字:计算 NET 按钮 | 更新日期: 2023-09-27 18:36:06

我需要编写计算素数的程序。我在网上搜索并找到了可以做到这一点的代码,但我是 .net 的新手,并且知道在 Button1_Click 函数中写什么。这是我采用的代码:http://www.dotnetperls.com/prime

这是我尝试编写的代码:

  namespace Test
  {
public partial class TestWebForm : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        IsPrime prime = new IsPrime();
    }
}

}

我知道这不是一个好问题,但我真的需要帮助。谢谢!

按钮,计算 .NET 中的素数,C#

1)在您提供的链接中,他们已经有一个静态类,其方法为IsPrime。
2)你没有在代码中包含该类。我做了。
3)在按钮点击事件中 - 我测试7是否是质数
4)结果将显示在空白页中。(对或错)。

  namespace Test
  {
      public static class PrimeTool
      {
          public static bool IsPrime(int candidate)
          {
              // Test whether the parameter is a prime number.
              if ((candidate & 1) == 0)
              {
                  if (candidate == 2)
                  {
                      return true;
                  }
                  else
                  {
                      return false;
                  }
              }
              for (int i = 3;
                  (i * i) <= candidate; i += 2)
              {
                  if ((candidate % i) == 0)
                  {
                      return false;
                  }
              }
              return candidate != 1;
          }
      }

      public partial class TestWebForm: System.Web.UI.Page
      {
          protected void Page_Load(object sender, EventArgs e)
          {
          }
          protected void Button1_Click(object sender, EventArgs e)
          {
              bool prime = PrimeTool.IsPrime(7); //when a class is static  , you don't `new()` it.
              Response.Write("7 is prime=" + prime);
          }
      }
  }
 Simply do it like this.

namespace Test
      {
    public partial class TestWebForm : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            int number = int.Parse(txtNumber.Text);
            Response.Write(IsPrime(number));
        }
        private bool IsPrime(int number){
            int boundary = Math.Floor(Math.Sqrt(number));
            if (number == 1) return false;
            if (number == 2) return true;
            for (int i = 2; i <= boundary; ++i)  {
               if (number % i == 0)  return false;
            }
            return true;  
        }
    }
    }