求: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);
}
}

解决方案 »

  1.   

    public class ZhiShu {
    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.   

    1、count用于记i%j==0的次数,i每次自增时应归0
    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);
    }
      

  3.   

    1、count用于记i%j==0的次数,i每次自增时应归0
    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);
    }
      

  4.   

    int count = 0; 
    应放在循环内,每次置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;
        }
      

  5.   

    是的,我也发现了,count必须清零.谢谢各位老兄的鼎立帮助!