黑马程序员技术交流社区

标题: 写了个100以内素数和程序,谁帮我看看错哪里了 [打印本页]

作者: Camwly    时间: 2015-11-28 22:49
标题: 写了个100以内素数和程序,谁帮我看看错哪里了
麻烦大神看下下面的代码,就是求100以内的素数和,我觉得我思路没问题,但是为啥就是算不对呢?


public class SushuSum
{
public static void main(String args[])
{
int i,j,k=0,sum=0;
for(i=2;i<=100;i++)
{
for(j=2;j<i;j++)
{
if(i%j!=0)
k=k+i;
}
sum=sum+k;
}
System.out.println("0~100内的素数和为"+sum);
}


}

作者: hansnowqiang    时间: 2015-11-29 00:16
本帖最后由 hansnowqiang 于 2015-11-29 00:22 编辑

你这条件有问题吧;
比如:i=5
j = 2  满足条件  k=k+5;
j = 3  满足条件  k=k+5;
j = 4  满足条件  k=k+5;
你这个k定义的有问题。完全不知道k是什么。条件应该是i%j==0时跳过这个i直接到下一个i
用continue外循环
即:有能整除的就不是素数。
希望能有帮助。


作者: 萧未然    时间: 2015-11-29 14:10
代码改了一点
  1. /**
  2. * 求100以内素数之和
  3. * @author Administrator
  4. *
  5. */
  6. public class Face4 {

  7.         public static void main(String[] args) {
  8.                 int i,j,k=0,sum=0;
  9.                 a:for(i=0;i<=100;i++){
  10.                         b:for(j=2;j<i;j++){
  11.                                 if(i%j==0)continue a;//只要发现有除1和本身外的约数,继续外层循环
  12.                         }
  13.                         System.out.println(i);
  14.                         sum=sum+i;
  15.                 }
  16.                 System.out.println("0~100内的素数和为"+sum);
  17.         }
  18. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2