条件较多时看起来会比较复杂,可能并不容易算
但是对于计算机来说,对于一个条件直接判断,不存在人看起来的麻烦
int i = 4
if (i == 1 | i % 2 == 0 & i != 2);
//i=1或不为2的偶数
二维数组可以这样写,以下为两行三列
int [][] a = {
{1,2,6},
{3,},
//可以留 , 以便以后再写
};
判断一个数是否是素数,1不是素数,2是素数
1.到这个数减一
2.到这个数的平方根是否被整除
3.不能被2,3,5,7整除
4.不能被素数整除,如下代码,类似于递归的思路,与递归的反推不同,正推
int[] nums2 = new int[20];
//前二十个素数
nums2[0] = 2;
int index2 = 1;
y: for (int i = 3; index2 < 20; i++) {
//从3开始每次加一判断是否素数,下标小于20,从0到19二十个数
for (int j = 0; j < index2; j++) {
//下标从已存放素数的0开始,到总存放数的下标 这句描述不清晰,结合上下文分析
if (i % nums2[j] == 0) {
//判断的数除以数组内已存放的素数,余数为0不是素数
continue y;
//跳出本次循环进行下一次循环
}
}
nums2[index2++] = i;
}
5.素数的倍数都不是素数
boolean[] a = new boolean[100];
for (int i = 0; i < a.length; i++) {
a[i] = true;
}
// 下标从2开始表示数字2,之前的0,1不考虑计算
for (int j = 2; j < a.length; j++) {
if (a[j]) {
for (int i = 2; i * j < a.length; i++) {
a[i * j] = false;
}
}
}
for (int i = 2; i < a.length; i++) {
if (a[i] == true) {
System.out.print(i + " ");
}
}