求:1-100以内的质数和,不知问题处在哪里了?
public class zhiShu {
public static void main(String[] args) {
// 求质数(素数)之和,但质数不包含1
int sum = 0;
int count = 0; for (int i = 2; i <= 100; i++) { for (int j = 1; j <= i; j++) {
if (i % j == 0) { count++; } } if (count == 2) {
sum += i;
} }
System.out.println(sum);
}
}
public class zhiShu {
public static void main(String[] args) {
// 求质数(素数)之和,但质数不包含1
int sum = 0;
int count = 0; for (int i = 2; i <= 100; i++) { for (int j = 1; j <= i; j++) {
if (i % j == 0) { count++; } } if (count == 2) {
sum += i;
} }
System.out.println(sum);
}
}
解决方案 »
- 紧急求助:java网络通信问题
- 请高手帮忙解决一下poi excel问题
- JNDI连接问题
- 如何向一个txt文件尾添加字符串?
- 如何实现java和vc之间的通信????
- 碰到一道文件管理的问题,哪位大哥给看一看,谢谢啦
- File 能人请进 -> 这样声明 File dri[7] ; 不可以吗?
- Java很火,可Java能做什么?
- 请问诸位高手,Java中JFrame上最小化按钮是调用什么方法实现的??
- java中将大写子母变为小写子母,并后退一位
- TOMCAT 和 Active Directory 连用来做 user authentication (有请 Kerberos, SPNEGO 高手来帮忙 )
- 一简单练习,发现几处不明白的地方,望说明一下,谢谢!
public static void main(String[] args) {
// 求质数(素数)之和,但质数不包含1
int sum = 2;
boolean isZhiShu = true;
for (int i = 3; i <= 100; i++) {
for (int j = 2; j <(i + 1) / 2; j++) {
if (i % j == 0) {
isZhiShu = false;
break;
}else{
isZhiShu = true;
}
}
if(isZhiShu){
sum += i;
}
}
System.out.println(sum);
}
}
这样能不能满足你的要求呢.
你定义的count==2不知道是根据什么来判断的...
2、判断count时应在i循环内,不应在j循环内
修改如下:
public static void main(String[] args) {
int sum = 0; for (int i = 2; i <= 10; i++) {
int count = 0;
for (int j = 1; j <= i; j++) {
if (i % j == 0) {
count++;
}
}
if (count == 2)
sum += i;
}
System.out.println(sum);
}
2、判断count时应在i循环内,不应在j循环内
修改如下:
public static void main(String[] args) {
int sum = 0; for (int i = 2; i <= 100; i++) {
int count = 0;
for (int j = 1; j <= i; j++) {
if (i % j == 0) {
count++;
}
}
if (count == 2)
sum += i;
}
System.out.println(sum);
}
应放在循环内,每次置0
否则count一直递增。for (int i = 2; i <= 100; i++) {
int count = 0;
for (int j = 1; j <= i; j++) {
if (i % j == 0) {
count++;
}
}
if (count == 2)
sum += i;
}