这个代码怎么错了,求500到800之间的素数并将他们从大到小排序第一个减第二个加第三个到最后一个,要输出的是素数的个数以及减加的结果

#include
using namespace std;

int IsPrime(int x)
{
int i;
for(i=2;i
if(x%i==0)break;
if(i==x)return 1;
else return 0;
}
int main()
{
int x,cnt=0,sum=0,s=1;
for(x=799;x>500;x--){
if(IsPrime(x)==0) continue;

else cnt++,x=x*s,sum+=x,s=-s;}

  cout<" "<<sum;

 return 0;

}

代码规范啊,为什么要省括号,看得贼难受


int main()
{
    int x,cnt=0,sum=0;
    int a[100];
    int i=0;
    for(x=799;x>500;x--)
    {
        if(IsPrime(x)==0)
        {
            continue;
        }
        else
        {
            cnt++;
            a[i]=x;
            i++;
        }
    }
    printf("%d\n",cnt);
    for (i=1;i<cnt;i++)
    {
        sum=a[0];
        if(i%2!=0)
        {
            sum-=a[i];
        }
        else {
            sum+=a[i];
        }
    }
    printf("%d\n",sum);
    return 0;
}