Java从零开始
程序员文章站
2022-05-28 14:27:27
...
数据运算、流控制、数组
用“埃氏筛法”求2~100以内的素数。2~100以内的数,先去掉2的倍数,再去掉3的倍数,再去掉5的倍数,……依此类推,最后剩下的就是素数。
题解:素数的定义为只有他本身跟0可以整除,遇到一个数就把他的倍数消除,所以剩下的都是只有他本事是除数的数。
public class Second {
public static void main(String[] args) {
int[] arr = new int [101];
//数组所有元素均为非0,即我们把他看成均是素数。
for (int i = 2; i <= 100; i ++) {
arr[i] = i;
}
int x,y;
//主体部分。
for (int i = 2; i <= 100; i ++) {
//判断是否为素数
if (arr[i] != 0) {
//将此时i所表示的数的倍数,因为素数定义只能是0跟本身,所以i表示的这个数的倍数均不为素数,即定义为0.
for (x = 2; (y = x*i) <= 100; x ++) {
//y为i与遍历数x的乘积
arr[y] = 0;
}
}
}
//for的暴力输出循环,很常用,记住格式多练。
//这里i代表的就是arr数组里面的数。
for (int i : arr) {
//判断是否为零
if (i != 0)
System.out.print(i+" ");//不用println,因为不需要换行。
}
}
}
主要是考察嵌套即为流控制,还有数组的灵活运用。