c语言求助只有20分,感觉代码没问题,但是只有测试2通过了,剩下的都多了1个数,但不知道怎么改,求助各位大佬
#include<stdio.h>
int prime(int n)
{
int i;
for(i=2;i<n;i++)
if(n%i==0) return 0;
return 1;
}
void main()
{
int i,n,sum=0,k=0;
scanf("%d",&n);
for(i=2;i<=n/2;i++)
{if(prime(i))
{printf("%d\n",i);
k++;
sum+=i;
if(sum>n)break;}
}
printf("%d\n",k);
}