编程:把一个大于六的偶数分解成两个素数之和

 我来答
大_匆
2009-12-08 · TA获得超过202个赞
知道小有建树答主
回答量:91
采纳率:0%
帮助的人:0
展开全部
//试试吧,还可以
main()
{
int isprime(int m); //判断一个数是否是素数的函数
int n, a, b, i;
printf("输入一个大于六的偶数:");
scanf("%d", &n);
for(i=1; i<n; i++)
{
a=i; b=n-a;
if(isprime(a)&&isprime(b)&&a>b)
printf("两个素数分别为:%d %d\n", a, b);
}
}
int isprime(int m)
{
int i;
for(i=2; i<=m/2; i++)
{
if(m%i==0) return 0;
}
return 1;
}
百度网友04f0758
推荐于2018-04-13 · TA获得超过7286个赞
知道大有可为答主
回答量:2055
采纳率:84%
帮助的人:957万
展开全部
给你思路:“授人以鱼不如授人以渔”

步骤:
付值6
循环从6-1到6-6/2止
6-1得5
判断1,5均是素数 给出结果1,5是素数,下一步
6-2得4
判断2,4不是素数,下一步
6-3得3
判断3,3均是素数 给出结果3,3是素数,下一步
6-4超过6-6/2的范围,溢出
得出两个结果
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
4747哦
2019-07-17 · TA获得超过675个赞
知道小有建树答主
回答量:365
采纳率:73%
帮助的人:72.5万
展开全部
#include<stdio.h>
#include<math.h>
void fun(int a)
{
int k,m1,m2;
for(m1=3;m1<=a/2;m1=m1+2)
{
for(k=2;k<=sqrt(m1);k++)
if(m1%k==0)break;
if(k>sqrt(m1))
{
m2=a-m1;
for(k=2;k<=sqrt(m2);k++)
if(m2%k==0)
break;
if(k>sqrt(m2))
printf("%d=%d+%d\n",a,m1,m2);
}
}
}
main()
{
int a;
printf("\n ENTER a:");
while(scanf("%d",&a)==1&&a)
{fun(a);printf("\n ENTER a:");}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式