1、打开visual studio软件,进入菜单“文件”->新建->新建项目。选择windows窗体程序,项目名为“SuShu”。
2、在窗体上添加控件:lable控件,text值为“输入一个数,判断是否是素数”;一个textbox控件(tb_inputvalue),用来输入要判断的素数。一个按钮“判断”(btn_pd),判断是不是素数。一个大按钮(btn_hq),获取前一百的素数用richTextBox1来保存获取到的素数。
3、素数设计算法
4、素数设计算法:取消检测区间,提高程碌食撞搁序效率。我们可以只判断2到n/2之间的数,就可以知道他是不是素数了,因为2*n/2等价于n/2忮氽阝另*2,其实我们还可以进一步的缩短区间。我们知道 x^2=n,那么n可能等于(x-a)*(x+b),同理(x+b)*(x-a)同一个表达式,那么我们完全可以只判断2-根号下n这个区间就可以了。public bool sushu(int value) { double n= Math.Round(Math.Sqrt(value)); // MessageBox.Show(n.ToString()); for (int i = 2; i <=n; i++) { if (value % 2 == 0) return false; } return true; }
5、获取前100之间的所有素数:从2到一百挨个判断,是素数就记录下来。private void btn_hq_Click(object sender, EventArgs e) { for (int i = 2; i <= 100; i++) { if (sushu(i)) { richTextBox1.AppendText(i + "\t"); } } }
6、判断一个数是不是素数:if (sushu(Int32.Parse(tb_inputvalue.Text))) { MessageBox.Show(tb_inputvalue.Text + " 是素数"); } else { MessageBox.Show(tb_inputvalue.Text + " 不是素数"); }
7、编译运行程序,我们输入67,检测67是不是素数。根据执行结果是素数和实际符合。
8、编译运行程序,获得前100的素数