求n以内质数和

 

给定一个质数 n (5 < n < 1000),求出小于n的所有质数的和

 

 

for循环嵌套

 

问题1 内循环跑不完

for (i = 3; i < n; i++)
{
     for (j = 2; j < i; j++)
    {
        if (i%j != 0)
        sum += i;
    }
}

如n=10 i=9 j=2时 i%j!=0 则sum加9

解决措施:引入变量a=i%j 在内循环外加if语句 当a!=0时 sum+=i

问题2  当i%j==0时,如果内循环没跑完,会继续做循环,a最终!=0

 for (i = 3; i < n; i++)
{
     for (j = 2; j < i; j++)
       { a=i%j;}

  if (a!=0)  sum+=i;

}

解决措施:在内循环内加if语句 if(a==0) break;

 

/*程序需要优化*/

posted @ 2021-11-25 20:00  ErosVenirse  阅读(138)  评论(0)    收藏  举报