判断一个数是否为素数:
一个数只能被1和它本身整除就是素数。
判断过程:
整数N是2则就是素数;
整数N不是2,则从2开始到N-1去除N;
如果2过程中有一次余数为0,则N不是素数;如果2过程中没有一次余数为0,则N是素数。
使用C#编程语言实现:
public Boolean IsPrime(int number) { if(n==2) { return ture; } for(int i=2; i<n; i++) { if(n%i==0) { return false; } } return true; }
思考:
判断2至N的一半的数是否能整除N,可以减少判断次数。
public Boolean IsPrime(int number) { if(n==2) { return ture; } for(int i=2; i<n/2+1; i++) { if(n%i==0) { return false; } } return true; }
对于素数而言,它的个数是有限的,因此可以使用枚举的方式来判断一个数是否是素数。
/* * Created by SharpDevelop. * User: Ajax * Date: 2013/7/21 星期日 * Time: 21:25 * * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; namespace Demo { class Prime { public static Boolean IsPrime(int number) { // 素数表 int [] primeArrayTable= new int[]{ 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53, 59,61,67,71,73,79,83,89,97,113, 193,241,257,337,353,401,433,449,577,593,641, 673,769,881,929,977,1009,1153,1201,1217,1249, 1297,1361,1409,1489,1553,1601,1697,1777,1873, 1889,2017,2081,2113,2129,2161,2273,2417,2593, 2609,2657,2689,2753,2801,2833,2897,3041,3089, 3121,3137,3169,3217,3313,3329,3361,3457,3617, 3697,3761,3793,3889,4001,4049,4129,4177,4241, 4273,4289,4337,4481,4513,4561,4657,4673,4721, 4801,4817,4993,5009,5153,5233,5281,5297,5393, 5441,5521,5569,5857,5953,6113,6257,6337,6353, 6449,6481,6529,6577,6673,6689,6737,6833,6961, 6977,7057,7121,7297,7393,7457,7489,7537,7649, 7681,7793,7841,7873,7937,8017,8081,8161,8209, 8273,8353,8369,8513,8609,8641,8689,8737,8753, 8849,8929,9041,9137,9281,9377,9473,9521,9601, 9649,9697,9857 }; int count=primeArrayTable.Length; if(number==2) { return true; } for(int i=0; i<count; i++) { if(number/2+1 < primeArrayTable[i]) { return true; } if(number%primeArrayTable[i]==0) { return false; } } return true; } public static void Main(string[] args) { for(int i=2; i<300; i++) { bool flag=Prime.IsPrime(i); if(flag==true) { Console.WriteLine("{0}是质数",i); }else{ Console.WriteLine("{0}不是质数",i); } } while(true) { ; } } } }
注释:Main方法最后的while死循环是为了在Cosole中看到打印输出的信息信息。
如下图:
转载于:https://blog.51cto.com/broncho/1253999