当前位置: 代码迷 >> C语言 >> 求素数之和的问题,大家帮忙看看错在哪里?
  详细解决方案

求素数之和的问题,大家帮忙看看错在哪里?

热度:125   发布时间:2008-04-12 12:12:54.0
求素数之和的问题,大家帮忙看看错在哪里?
/*求3~150间的素数之和*/
#include "stdio.h"
#include "math.h"
void main()
{
int i,j,z=0;
for(i=3;i<=150;i++)
for(j=2;j<i;j++)
  {if(i%j!=0)
    z=z+i;break;
  }
printf("3~150间的素数之和为:%d",z);
}
求出的值不应该是这么大
搜索更多相关的解决方案: 素数  之和  

----------------解决方案--------------------------------------------------------
for(j=2;j<i;j++)
  {if(i%j!=0)
   有问题
----------------解决方案--------------------------------------------------------
是呀~~可具体是错再哪了?
----------------解决方案--------------------------------------------------------
没有人知道吗?
----------------解决方案--------------------------------------------------------
#include<stdio.h>
#include<math.h>

int isprime(int m)
{
    int i;
    for(i=2;i<=sqrt(m);i++)
        if(m%i==0) return 0;
        return 1;
}

void main()
{
    int i,sum=0;
    for(i=3;i<=150;i++)
    {
        if(isprime(i))
        {
            sum+=i;
        }
    }
     printf("sum is %d",sum);
}
----------------解决方案--------------------------------------------------------
我现在就想知道我的那个是错在了那里??
----------------解决方案--------------------------------------------------------
#include "stdio.h"

void main()
{
int i,j,z=0;
for(i=3;i<=150;i++)
{ j=2;
while(i%j!=0)
{  j++;
     if(i==j)
     {
         z=z+i;
        break;
     }
  }
}
printf("3~150间的素数之和为:%d",z);
}
帮你修改的
----------------解决方案--------------------------------------------------------
if(i%j!=0)

这里你求的是 I除取余不为0的 所有数的 和 当然不对
----------------解决方案--------------------------------------------------------
嗨。。。。。。
----------------解决方案--------------------------------------------------------
#include "stdio.h"
void main()
{
int i,j,k,z=0;
printf("3~150间的素数为:\n");
for(i=3;i<=150;i++)
{   k=0;
   for(j=2;j<=i;j++)
    if(i%j!=0) k++;
     if(i-2==k)
     {
       z+=i;
       printf("%d ",i);
      }
}
printf("\n3~150间的素数之和为:%d",z);
getch();
}
你自己对照看看哪点不一样?
----------------解决方案--------------------------------------------------------
  相关解决方案