素数:首先是一个大于1的整数,除了一和它本身不能别任何数整除。今天我就来实现素数的算法,通过算法来判定一个数是不是素数,并得到100以内的素数。程序执行界面图如下:
工具/原料
visualstudio2010
方法/步骤
1、打开visualstudio软件,进入菜单“文件”->新建->新建项目。选择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这个区间就可以了。publicboolsushu(intvalue){doublen=Math.Round(Math.Sqrt(value));//MessageBox.Show(n.ToString());for(inti=2;i<=n;i++){if(value%2==0)returnfalse;}returntrue;}
5、获取前100之间的所有素数:从2到一百挨个判断,鋈守踬痊是素数就记录下来。privatevoidbtn_hq_Click(objectsender,EventArgse){for(in墉掠载牿ti=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的素数