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;
} 展开
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;
} 展开
2个回答
展开全部
根据题意得如下代码:
#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;
}
追问
谢谢~!!
追答
不客气
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询