编译出现illegal break,不知道哪儿出错了

编译出现illegal break,不知道哪里出错了#includestdio.h#includemath.hint isprime(int m){int i,fla

编译出现illegal break,不知道哪里出错了
#include<stdio.h>
#include<math.h>
int isprime(int m)
{
int i,flag=1;
for(i=2;i<=sqrt(m);i++)
{
if(m%i==0)
{flag=0;
break;}
}
return flag;
}
int main()
{
int x,n,a,b;
printf("input a even number");
scanf("%d",&x);
for(n=6;n<=x;n+=2)
for(a=3;a<=n/2;a+=2);

if(isprime(a))

b=n-a;
if(isprime(b))
{
printf("%d=%d+%d\n",n,a,b);
break;
}



}

return 0;
}
[解决办法]
这句话有问题,不应该有分号的吧!并且,for循环下应该有大括号!
for(a=3;a<=n/2;a+=2);
[解决办法]
printf("%d=%d+%d\n",n,a,b);
 break;这行不在循环内,所以不需要break
for(a=3;a<=n/2;a+=2);是不是这句手误多写了个分号?
[解决办法]
编译错误的话,至少把哪儿错了的错误信息粘一下啊,囧。