/*质数(prime number)又称素数,有无限个。除了1和它本身以外不再有其他的因数;否则称为合数。
* 根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积;
* 而且如果不考虑这些质数在乘积中的顺序,那么写出来的形式是唯一的。最小的质数是2。*/
int N = 100;
bool[] a = new bool[N+1];//此初始化可以让数组里的值从1开始,而不是从0开始, 使用布尔型可以利用真或者假排除掉一些数
for (int i = 2; i <= N; i++) a[i] = true;//初始化a[i]里所有的值
for (int i = 2; i < N; i++)//
{
if (a[i]) //以下全部赋值为假的数排除,可省略梅必要的循环
for (int j = i * 2; j <= N; j += i)
a[j] = false;// 第一步,把所有小于100的倍数全部为假
//以上循环:i=2,j=i*2;j<=100;j+2;j<=100;j+2;....
} // 4 6 8 .. ... 直到得出来的数大于100为止全部赋值为假
// i=3,j=i*2;j<=100;j+3;j<=100;j+3;.....
// 6 9 12 ...... 直到得出来的数大于100为止全部赋值为假
for (int i = 2; i <= N; i++)
if (a[i]) Console.WriteLine(i + " ");//遍历输出不为假的数
}
①C#,利用数组求一个范围内的质数
最新推荐文章于 2023-03-08 22:21:59 发布