目录
前言:
1、用Java输出100内的质数
2、用Java输出100内的合数
补充一下:
前言:
质数的概念:除了1和它本身以外不再有其它的因数,这个数就是质数。
合数的概念:除了1和它本身以外还有其它的因数,这个数就是合数。
1、用Java输出100内的质数
先分析一下,大家都知道1不是质数也不是合数,就从2开始。2除以1等于2,2除以2等于1,2的因数只有1和2,所以2是质数。接下来看3,3除以1等于3,3除以2等于1余1,3除以3等于1(其实没这个没必要看了,后看就不看本身与本身相除以了),3的因数只有1和3,所以3是质数。接下来看4,4除以1等于1,4除以2等于2,4除以3等于1余1,4的因数有1、2和4,所以4为合数……后面的也是这样算下去。
接下来上代码
public static void main(String[] args) {
a: for (int i = 2; i <=100; i++) {
b: for (int j = 2; j <= i; j++) {
if (j == i) {
System.out.println(i);
}
if (i % j == 0) {
continue a;
}
}
}
}
结果如下:
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
Process finished with exit code 0
代码分析:
外层循环a的作用就是循环2到100作为除数。
内从循环b的作用就是循环2到和外层循环相等的数作为被除数。
if (j == i) {System.out.print(" " + i);}的作用就是当循环到自己除以自己的时候,说明自己已经是质数了,所以输出一下。
if (i % j == 0) {continue a;}的作用就是不停地判断 i 和 j 是否能整除,如果能整除,而且 i 和 j 不相等,那么就说明除数 i 已经不是质数了,直接让外层循环a跳过这个数的循环,开始判断下一个数。
注意:这两个判断的顺序不可以改变。
2、用Java输出100内的合数
分析一下,除了1之外,剩余的数不是质数就和合数,所以就很简单,将上面输出质数的代码稍加修改即可
public static void main(String[] args) {
a: for (int i = 2; i <=100; i++) {
b: for (int j = 2; j <= i; j++) {
if (i % j == 0&&i!=j) {
System.out.println(i);
continue a;
}
}
}
}
结果如下:
4
6
8
9
10
12
14
15
16
18
20
21
22
24
25
26
27
28
30
32
33
34
35
36
38
39
40
42
44
45
46
48
49
50
51
52
54
55
56
57
58
60
62
63
64
65
66
68
69
70
72
74
75
76
77
78
80
81
82
84
85
86
87
88
90
91
92
93
94
95
96
98
99
100
Process finished with exit code 0
代码分析:
外层循环a的作用就是循环2到100作为除数。
内从循环b的作用就是循环2到和外层循环相等的数作为被除数。
if (i % j == 0&&i!=j) {
System.out.println(i);
continue a;
}
这个判断的作用就是不停的不停地判断 i 和 j 是否能整除,如果能整除,而且 i 和 j 不相等,那么就说明除数 i 已经是合数了,所以输出 i,然后让外层循环a跳过这个数的循环,开始判断下一个数。
补充一下:
上面代码中的 a: 和 b:都是给循环起了个名字,方便后面用break和continue关键字跳过或结束某个循环。如果想直接结束所有循环可以直接用return关键字。
最后,觉得有用的话,可以点赞、收藏,加关注哟,要不下次就找不见了哟!