public static void main(String[] args) {
//质数的和,初始值是最小的质数
int sum = 2;
//求1-100的质数的和,质数除了1和本身外不能被其他数整除,1不是质数
for (int i = 3; i < 100; i++) {
for (int j = 2; j < i; j++) {
//非质数,跳出
if (i % j == 0) {
break;
} else {
//判断是否是除了本身之外最大的数,如果没有找到被整除的数,证明是质数
if (j == (i - 1)) {
sum += i;
}
}
}
}
System.out.println(sum);
}
}
你题目的解答代码如下:
public static void main(String[] args) {
//质数的和,初始值是最小的质数
int sum = 2,f;
//求1-100的质数的和,质数除了1和本身外不能被其他数整除,1不是质数
for (int i = 3; i < 100; i++) {
f = 0;
for (int j = 2; j < i; j++) {
//非质数,跳出
if (i % j == 0) {
f = 1;
break;
}
}
//判断是否是除了本身之外最大的数,如果没有找到被整除的数,证明是质数
if (f == 0) {
sum += i;
}
}
System.out.println(sum);
}
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
判断放在循环外。
public static void main(String[] args) {
//质数的和,初始值是最小的质数
int sum = 2;
//求1-100的质数的和,质数除了1和本身外不能被其他数整除,1不是质数
for (int i = 3; i < 100; i++) {
int j = 2;
for (; j < i; j++) {
//非质数,跳出
if (i % j == 0) {
break;
}
}
//判断是否是除了本身之外最大的数,如果没有找到被整除的数,证明是质数
if (j == (i - 1)) {
sum += i;
}
}
System.out.println(sum);
}
}
else不需要,而且逻辑不对,代码修改如下:
public static void main(String[] args) {
//质数的和,初始值是最小的质数
int sum = 2;
//求1-100的质数的和,质数除了1和本身外不能被其他数整除,1不是质数
for (int i = 3; i < 100; i++) {
for (int j = 2; j < i; j++) {
//非质数,跳出
if (i % j == 0) {
break;
}
}
//if语句放在这里
if (j == (i - 1)) {
sum += i;
}
}
System.out.println(sum);
}