想用循环实现求素数和 想知道哪里错了

#include
int main()
{
    int n;
    int sum=0;
    int i=0;
    int j=0;
    scanf("d",&n);
    for(i=0;ifor(j=2;j<=n;j++)//判断是不是素数?
       {
        if(i%j==0)
        {
          break;
        }
        if(i==j)
        {
          sum+=i;
        }
       }
    }
   printf("sum=%d\n",sum);
}


想用循环实现
想知道哪里错了,谢谢!

for(j=2;j<=n;j++)
改为
for(j=2;j<i;j++)
=======
for(i=0;i<n;i++)
改为
for(i=2;i<n;i++)
=========
scanf("d",&n);
改为
scanf("%d",&n);


#include<stdio.h>
int main()
{
  int n;
  int sum = 4;
  int i = 0;
  int j = 0;
  scanf("%d", &n);
  for (i = 1; i <= n; i++)
  {
    for (j = 2; j <= i/2; j++)//判断是不是素数?
    {
      if (i % j == 0)
      {
        break;
      }
      if (i/2 == j)
      {
        sum += i;
      }
    }
  }
  printf("sum=%d\n", sum);
}

有几个点:
1.scanf那里不是d,改成scanf("%d",&n);
2.判断素数那里逻辑有问题

#include<stdio.h>
int main()
{
    int n;
    int sum=0;
    int i=0;
    int j=0;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        if(i < 2){
            continue;
        }
        int prime = 0;
       for(j=2;j * j<=i;j++)//判断是不是素数?
       {
               if(i % j == 0){
                   //不是素数,标记为1 
                   prime = 1;
                   break;
            } 
       }
       if(prime == 0){
           sum += i;
       }
    }
   printf("sum=%d\n",sum);
}