#include <stdio.h>
//设置函数素数,若为素数则返回值为1,否则为0
int sushu(int x)
{
int i;
for (i=2;i<x;i++)
{
if(x%i==0)
{
return 0;//判断该数是否拥有除去1和本身以外的因数
}
}
return 1;
}
int main()
{
int n,i;
printf("please input an even number greater than or equal to 4\n");
scanf("%d",&n);//一个大于等于4的偶数
for (i=2;i<=n/2;i++)//此处的n/2是为了防止重复
{
if(sushu(i) &&sushu(n-i))//同时满足i是素数,n-i也是素数时输出
{
printf("%d=%d+%d\n",n,i,n-i);
}
}
return 0;
}
这便是整体的代码
其中int sushu(int x)函数,就是判断一个数是否为素数,并用1表示是,0表示否,便于在主函数中进行计算
例如10可由
10=3+7
10=5+5
得到
或是大一点的数:188
188=7+181
188=31+157
188=37+151
188=61+127
188=79+109
这题主要考察我们对素数的判别
for (i=2;i<x;i++)
{
if(x%i==0)
{
return 0;//判断该数是否拥有除去1和本身以外的因数
}
}
return 1;
接下来我们用一个小题目来帮助我们对素数加深了解
输出1-n之间的所有素数
#include <stdio.h>
int main()
{
int n,i,j,flag;
printf("please input a number\n");
scanf("%d",&n);
for (i=2;i<=n;i++)
{
flag =1;
for (j=2;j<i;j++)
{
if (i%j == 0)
flag=0;
}
if (flag ==1)
printf("%d ",i);
}
return 0;
}