验证哥德巴赫猜想的代码,不知道为什么就是编译不出来

#include <stdio.h>
int main()
{
int i,j,k,charge,prime_number[100],m,n,z;
for(i=6;i<=1000;i++)
{
if(i%2==0)
{
for(m=2,k=0;m<=i;m++)
{
charge=0;
for(j=2;j<i;j++)
{
if(m%j==0)
{
charge=1;
break;
}
}
if(charge==0)
{
prime_number[k]=m;
k++;
}
}
for(z=0;z<k;z++)
{
for(n=0;n<k;n++)
if(prime_number[z]+prime_number[n]==i)
{
printf("%d=%d+%d",i,prime_number[z],prime_number[n]);
}
}
}
}
}

img

for(j=2;j<i;j++) --> 这一行改为 for(j=2;j<m;j++)

img


前面循环执行完后这个数组根本没有任何值,当然不会有输出了

int 型和数组不能一起定义

你这个写麻烦了 可以用更简单的办法的

for(m=2,k=0;m<=i;m++)   每次k都被赋0了