任意一个偶数都可以写成俩个质数之和c语言程序
答案:2 悬赏:60 手机版
解决时间 2021-01-28 12:00
- 提问者网友:最爱你的唇
- 2021-01-28 04:04
任意一个偶数都可以写成俩个质数之和c语言程序
最佳答案
- 五星知识达人网友:独行浪子会拥风
- 2021-01-28 04:51
#include
#include
int fun(int n) //判断n是否是素数的函数。n是素数则返回1,否则返回0。
{
int i,k;
k=sqrt(n+1);
for(i=3;i<=k;i++)
if(n%i==0) break;
if(i>=k+1)
return 1;
else return 0;
}
int main()
{
int m,i,j;
printf("请输入一个大于6的偶数:");
scanf("%d",&m);
for(i=3;i<=m/2;i+=2)
if(fun(i)==1) //若i是素数
{
j=m-i;
if(fun(j)==1) //若j是素数
printf("%d=%d+%d\n",m,i,j);
}
return 0;
}
#include
int fun(int n) //判断n是否是素数的函数。n是素数则返回1,否则返回0。
{
int i,k;
k=sqrt(n+1);
for(i=3;i<=k;i++)
if(n%i==0) break;
if(i>=k+1)
return 1;
else return 0;
}
int main()
{
int m,i,j;
printf("请输入一个大于6的偶数:");
scanf("%d",&m);
for(i=3;i<=m/2;i+=2)
if(fun(i)==1) //若i是素数
{
j=m-i;
if(fun(j)==1) //若j是素数
printf("%d=%d+%d\n",m,i,j);
}
return 0;
}
全部回答
- 1楼网友:风格不统一
- 2021-01-28 05:32
很简单的,下面的max我定义为10000以内,如果你觉的大,可以任意改动(别小于6了呵呵)
#define max 10000
#include "stdio.h"
#include "math.h"
int f(int m);
void main()
{int i,m,k=0;
for(m=6;m<=max ;m=m+2)
for(i=3;i<=m/2;i=i+2)
if(f(i)&&(f(m-i))
{printf("%d=%d+%d ",m,i,m-i);
k++;
if(k%5==0) printf("\n");
}
}
int f(int m)
{int i,c;
c=sqrt(m);
for(i=2;i<=c;i++)
if(m%i==0)break;
if(i==c+1) return 1;
else return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯