没想到这个问题思考了这么久,刚开始想用取模=0来判断,i%j==0,结果没想好。因为其他也有等于零和不等于零的,然后想到用数组,现在结果是弄出来了,不过执行效率很低,因为要运算很多次,等有时间再思考更简便的方法
1 /*
2 * 打印101到200的素数
3 */
4 public class 素数 {
5 public static void main(String args[]) {
6 int i = 101;
7 int x = 0,r=0;
8 int[] arr=new int[100];//定义一个数组,用来放每个数能等于其他数的乘积的个数,如果为零,则为素数
9 while (i < 200) {
10 for (int j = 1; j < i; j++) {
11 for (int k = 1; k < i; k++) {
12 if (j * k == i) {
13 x++;
14
15 }
16
17 }
18
19 }//得到每个数等于其他乘积的个数
20
21 arr[r]=x;//放入数组
22 x=0;
23 r++;
24 i++;
25 }
26
27
28 //将数组中等于0的数提取出来
29 for(int y=0;y<arr.length;y++){
30 if(arr[y]==0){
31 System.out.print((y+101)+"、");
32 }
33 }
34 }
35
36 }