C语言编程题,求解,在线等~

程序功能:验证哥德巴赫猜想:任何一个大于2的偶数都可以表示为两个素数之和。例如:4=2+2、6=3+3、8=3+5……编写程序:1、编写intcheck(inta,int... 程序功能:验证哥德巴赫猜想:任何一个大于2的偶数都可以表示为两个素数之和。例如:
4=2+2、6=3+3、8=3+5……
编写程序:
1、编写int check(int a,int b,int p[][3])函数对a~b之间的所有偶数验证哥德巴赫猜想,但每个偶数只需验证一种可能即可(例如,10=3+7,10=5+5,只需输出其中一个式子即可),验证结果存入数组P,其中偶数存入P[i][0],第一素数存入P[i][1],第二个素数存入P[i][2],函数返回偶数的个数。
2、编写int isprime(int x)函数,判断x是否是素数。
*/
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int isprime(int x){
/**********Program**********/
int a,b;
for(a=2;a<x;a++)

if(x%a==0)
{
b=0;
break;
}else
b=1;
return(b);

/********** End **********/
}
int check(int a,int b,int p[][3]){
/**********Program**********/

/********** End **********/
}
int main()
{
int p[100][3],i,k;
FILE *fp;
k=check(4,100,p);
if((fp=fopen("DATA.TXT","w"))==NULL){
printf("File open error\n");
exit(0);
}
for(i=0;i<k;i++){
printf("%4d=%4d+%4d\n",p[i][0],p[i][1],p[i][2]);
fprintf(fp,"%4d=%4d+%4d\n",p[i][0],p[i][1],p[i][2]);
}
fclose(fp);
return 0;
}
展开
 我来答
wchyumo2011
2015-08-07 · TA获得超过2万个赞
知道大有可为答主
回答量:5810
采纳率:79%
帮助的人:2804万
展开全部

根据题意得如下代码:

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int isprime(int x){
/**********Program**********/
    int a, b = 1;
    for(a=2;a<x;a++)
        if(x%a==0)
        {
            b=0;
            break;
        }
    return(b);

/**********  End  **********/
}
int check(int a,int b,int p[][3]){
/**********Program**********/
    int i, j, t;
    if (a > b){
        t = a;a = b;b = t;
    }
    t = 0;
    for (i = a; i <= b; ++i){
        if (i%2 == 0){
            t++;
            for (j = 2; j <= i/2; ++j){
                if (isprime(j) && isprime(i-j)){
                    p[t-1][0] = i;
                    p[t-1][1] = j;
                    p[t-1][2] = i-j;
                    break;
                }
            }
        }
    }
    return t;
/**********  End  **********/
}
int main()
{
    int p[100][3],i,k;
    FILE *fp;
    k=check(4,100,p);
    if((fp=fopen("DATA.TXT","w"))==NULL){
        printf("File open error\n");
        exit(0);
    }
    for(i=0;i<k;i++){
        printf("%4d=%4d+%4d\n",p[i][0],p[i][1],p[i][2]);
        fprintf(fp,"%4d=%4d+%4d\n",p[i][0],p[i][1],p[i][2]);
    }
    fclose(fp);
    return 0;
}
追问
谢谢~!!
追答
不客气
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
听不清啊
高粉答主

2015-08-07 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
int isprime(int x){
/**********Program**********/
int a;
for(a=2;a<=x/2;a++)
if(x%a==0)
{
b=0;
return(0);
}
return(1);
追问
那哥德巴赫猜想那段程序呢
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式