在我还没有学习JAVA之前我被一个还上初中的兄弟问到:一百以内有多少个质数,分别都是几呢,它们的和是多少?。虽然我们都知道质数的概念:质数又称素数,是指一个大于1的自然数中,除了1和其自身外,没法被其他自然数整除的数。我当时蒙圈了,都是哪些数字嘛我还能一一说出来,至于多少个嘛,数一数就好了。可是求和就浪费时间了。 后来身为小白的我刚接触JAVA这个行业,我也遇到求素数的题目。发现我在网上搜索答案的时候发现一些代码没有优化就提交了。我学习JAVA也有一个来月了,回头再看看我写的代码感觉效率好慢也是没有优化。在当时学习到的一些小知识点竟然没有运用。现在我也想分享一下我简单优化后的代码,后期还能优化就更好了:
public static void main(String[] args) {
int count = 0;
int sum = 0;
for (int i = 2; i <= 100; i++) {
boolean flag = false;
for (int j = 2; j <= i >> 1; j++) {
if (i % j == 0) {
flag = true;
break;
}
}
if (!flag) {
System.out.print(i + " ");
sum += i;
count++;
}
}
System.out.println();
System.out.println("1--100之间的素数(也称质数)的个数 -->"+count);
System.out.println("1--100之间的素数(也称质数)的个数之和 -->"+sum);
}