变量i撞了啊
by jingkongwanglimiaoa @ 2020-11-23 20:21:55
@[赵小刀的小刀](/user/418500) 因为你的判断质数函数写错了
by 966123anyunchuan @ 2020-11-23 20:22:46
@[赵小刀的小刀](/user/418500)
另外你在判断质数的时候 i 没必要枚举到 n
```cpp
for(int i=2;i * i <=n;i++)
{
if(n%i==0) return 1;
}
return 0;//质数
```
这样会更快
by jingkongwanglimiaoa @ 2020-11-23 20:23:00
可以输出中间变量调试,就能发现问题了
by 966123anyunchuan @ 2020-11-23 20:23:53
函数没写错
但外面的循环和函数中的循环 变量i撞了
by jingkongwanglimiaoa @ 2020-11-23 20:24:04
```cpp
#include<stdio.h>
int zs(int n)
{
for(int j=2;j<=n;j++)//建议优化成 for (int j = 2;j*j <= n;j++)
{
if(n%j==0) return 1;
}
return 0;//质数
}
void num(int n)
{
printf("%d=",n);
for(int i=2;i<n;i++)
{
if(zs(i)==0&&zs(n-i)==0)
{
printf("%d+%d\n",i,n-i);
break;
}
}
}
int main()
{
int i,n;
scanf("%d",&n);
for(int i=2;i<=n;i=i+2)
{
num(i);
}
return 0;
}
```
by jingkongwanglimiaoa @ 2020-11-23 20:25:33
@[赵小刀的小刀](/user/418500)
by jingkongwanglimiaoa @ 2020-11-23 20:25:49
@[赵小刀的小刀](/user/418500) 你这发错题目板块了啊
by 966123anyunchuan @ 2020-11-23 20:25:58
函数确实写错了,这是错误原因
by 966123anyunchuan @ 2020-11-23 20:26:44
@[966123anyunchuan](/user/282292)
妹有哪里写错了吧...
~~一定是我太蒻看不出来~~
by jingkongwanglimiaoa @ 2020-11-23 20:28:30