例题
问题分析
1.进行判断是否为质数
2.将一个偶数拆分成两个质数
3.保证第一个加数比第二个加数小
解决思路
1.通过循环游历一遍2~n-1,如果因数个数为0,则为质数
2.将偶数n,拆分为i和n-i,将两个都满足质数时输出(核心思路)
3.在2的基础上,i++,当第一个满足条件的式子出现时就跳出循环
代码实现
#include<stdio.h>
int zs(int x)
{
for (int i = 2; i < x; i++)//判断是否为质数的函数
//若为质数,返回0,不是则返回1
{
if (x % i == 0)
return 1;
}
return 0;
}
void num(int n)
{
for (int i = 2; i < n; i++)
{ //核心函数
if (zs(i) == 0 && zs(n - i) == 0) //用来解决思路中的第二条
{
printf("%d+%d=%d\n", i, n - i, n);
break;
}
}
}
int main()
{
int a, b;
scanf("%d",&a);
for (b = 4; b <= a; b+=2) //按顺序输出
{ //注意是b+=2
num(b);
}
return 0;
}