package s1t21;public class Task24 { /**
 * 求1-100里面所有质数之和
 */
public static void main(String[] args) {
int sum = 0;
for (int i = 1,j = 2 ;j < i && i <= 100; i++,j++) {

if (i % j == 0) {
sum = sum + i;
}
}
System.out.println("1-100里面所有质数之和为:"+sum);
}
}我用二重循环能做出来,当是只用一个for循环就没只做出来

解决方案 »

  1.   

    你这代码逻辑都不正确,看一下这个吧
    public class Task24 {/**
    * 求1-100里面所有质数之和
    */public static void main(String[] args) 
    {
    int m,i,k,sum=0;
    for(m=2;m<=100;m++)
    {
    //k=m/2;for(i=2;i<=k;i++)
    if(m%i==0)
    break;
    if(i>=k+1)
    {
    System.out.println(m);
    sum+=m;
    }
    }
    System.out.println("1-100里面所有质数之和为:"+sum);
    }
    }
      

  2.   

    上面的代码我把    //k=m/2; 注释了,
    这个是没有注释的;public class Task24 {/**
    * 求1-100里面所有质数之和
    */public static void main(String[] args) 
    {
    int m,i,k,sum=0;
    for(m=2;m<=100;m++)
    {
    k=m/2;
    for(i=2;i<=k;i++)
    if(m%i==0)
    break;
    if(i>=k+1)
    {
    System.out.println(m);
    sum+=m;
    }
    }
    System.out.println("1-100里面所有质数之和为:"+sum);
    }
    }
      

  3.   

    能:
    public static void main(String[] args)  {
             int sum = 0;
             for (int i = 3,j = 2 ;j < i && i <= 100;j++) {             if (i % j == 0) {
                     j=1;
                     i++;
                     continue;
                 }
                 else{
                     if(j==i-1) {
                         j=1;
                         sum = sum + i;
                         System.out.println(i);
                         i++;
                     }
                   }
             }
             sum = sum+2;
             System.out.println("1-100里面所有质数之和为:"+sum);
    }