验证哥德巴赫猜想:任何一个大于6的偶数均可表示为2个素数之和。
问题描述:
我不知道哪里错了
#include<stdio.h>
int prime(int t);
int main()
{
int a=6,m,n,num=0;
for (;a<=100;a+2){
for (m=2;m<=a/2;m++){
n=a-m;
if((prime(m)==1)&&(prime(n)==1)){num+=1;
printf("%d=%d+%d",a,m,n);
if (num%5==0){
printf("\n");
num=0;
}
}
}}
return 0;
}
int prime(int t)
{
int i,e=0;
for (i=2;i<t;i++){
if (t%i==0) e=1;
}
return e;
}
答
for (;a<=100;a+2){
改为
for (;a<=100;a=a+2){
a+2是不会改变a的值的
素数判断也错了,返回0表示不是素数。所以if(t%i==0) e应该等于0。e的初始值应该是1