帮忙编写一个C++程序(能在Microsoft Visual C++ 6.0中运行正确的)、一道程序题!~

Q1:当n取值在“-39~40”范围内时,判断表达式n平方+n+41是否都是素数Q2:编写一个程序:利用穷举法求x的平方+y的平方=1000的所有整数解。提示(此题的结构... Q1:
当n取值在“-39~40”范围内时,判断表达式n平方+n+41是否都是素数

Q2:
编写一个程序:利用穷举法求x的平方+y的平方=1000的所有整数解。提示(此题的结构为for循环的嵌套)

Q3:
编写程序:验证哥德巴赫的猜想:即一个大于等于6的偶数可以表示为两个素数之和。例如:6=3+3,8=3+5,10=3+7

Q4:
编写程序:输入x,n的值,计算下式结果(2!表示2的阶层,3!表示3的阶层)
x/2!+x的平方/3!+x的三次方/4!+……x的n次/(n+1)!
展开
 我来答
michaelfai
2007-04-22 · 超过39用户采纳过TA的回答
知道答主
回答量:104
采纳率:0%
帮助的人:119万
展开全部
#include <stdio.h>
#include <math.h>

bool IsPrime(int n)
{
if(n<2)
return 0;
double t=sqrt(n);
for(int i=2;i<=t;i++)
{
if(n%i==0)
return 0;
}
return 1;
}

void CheckThePrimeFun()
{
for(int i=0;i<100;i++)
{
if(IsPrime(i))
printf("%d ",i);
}
printf("\nHave a check,and you will find the function bool IsPrime(int n) is correct!\n");
putchar('\n');
}

void Q1()
{
int i;
bool b;
char *s;
for(i=-39;i<40;i++)
{
printf("when n=%d,",i);
int t=(int)pow(i,2)+i+41;
b=IsPrime(t);
s=b? "is":"isn't";
printf("n^2+n+41=%d,it %s a prime\n",t,s);
if(!b)
break;
}

s=b?"All":"Not all";
printf("%s of them are primes!\n\n",s);
}

void Q2(int n)
{
int i,j;
double t=sqrt(n);
for(i=-(int)t;i<=t;i++)//整数?那么包含负数了
for(j=i;j<=t;j++)
{
if(pow(i,2)+pow(j,2)==n)
{
if(i<0) printf("(%d)^2+",i);
else printf("%d^2+",i);

if(j<0) printf("(%d)^2",j);
else printf("%d^2",j);

printf("=%d\n",n);
}
}
putchar('\n');
}

void Q3(int num)
{
int i,j;
bool flag;

for(int n=6;n<=num;n+=2)
{
flag=0;
for(i=2;i<=n/2;i++)
{
for(j=i;j<=n-2;j++)
{
if((i+j==n)&&IsPrime(i)&&IsPrime(j))
{
printf("%d=%d+%d\n",n,i,j);
flag=1;
break;
}
}
if(flag==1)
break;
}
if(!flag) printf("%d is exception!\n",n);
}
putchar('\n');
}

void Q4(double x,int n)
{
if(n<0)
{
printf("The number n is not legal!\n");
return;
}

int t=1;
double result=0,powx=1;
for(int i=1;i<=n;i++)
{
t*=(i+1);//t==(i+1)!
powx*=x;//powx==x^i
result+=powx/t;
}

printf("%.2lf/2!+%.2lf^2/3!+…+%.2lf^%d=%.2lf\n\n",x,x,x,n+1,result);
}

void main()
{
printf("****************Check It*****************\n");
CheckThePrimeFun();

printf("***************Question 1****************\n");
Q1();

printf("***************Question 2****************\n");
printf("A small one:\n");
Q2(25);
printf("A big one:\n");
Q2(1000);

printf("***************Question 3****************\n");
printf("A small one:\n");
Q3(10);
printf("A big one:\n");
Q3(100);

printf("***************Question 1****************\n");
double x;int n;
printf("In put x and n:");
scanf("%lf%d",&x,&n);
if(x>10||n>10)//x是double型,范围有限
printf("Warning:\nIf the x is big too much,you may not get the correct result!\n");
Q4(x,n);
}
//代码粘贴后全选,按键Alt+F8重排格式
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
悟葛战芮安
2019-09-23 · TA获得超过3584个赞
知道大有可为答主
回答量:3114
采纳率:34%
帮助的人:218万
展开全部
#include
<stdio.h>
#include
<math.h>
bool
IsPrime(int
n)
{
if(n<2)
return
0;
double
t=sqrt(n);
for(int
i=2;i<=t;i++)
{
if(n%i==0)
return
0;
}
return
1;
}
void
CheckThePrimeFun()
{
for(int
i=0;i<100;i++)
{
if(IsPrime(i))
printf("%d
",i);
}
printf("\nHave
a
check,and
you
will
find
the
function
bool
IsPrime(int
n)
is
correct!\n");
putchar('\n');
}
void
Q1()
{
int
i;
bool
b;
char
*s;
for(i=-39;i<40;i++)
{
printf("when
n=%d,",i);
int
t=(int)pow(i,2)+i+41;
b=IsPrime(t);
s=b?
"is":"isn't";
printf("n^2+n+41=%d,it
%s
a
prime\n",t,s);
if(!b)
break;
}
s=b?"All":"Not
all";
printf("%s
of
them
are
primes!\n\n",s);
}
void
Q2(int
n)
{
int
i,j;
double
t=sqrt(n);
for(i=-(int)t;i<=t;i++)//整数?那么包含负数了
for(j=i;j<=t;j++)
{
if(pow(i,2)+pow(j,2)==n)
{
if(i<0)
printf("(%d)^2+",i);
else
printf("%d^2+",i);
if(j<0)
printf("(%d)^2",j);
else
printf("%d^2",j);
printf("=%d\n",n);
}
}
putchar('\n');
}
void
Q3(int
num)
{
int
i,j;
bool
flag;
for(int
n=6;n<=num;n+=2)
{
flag=0;
for(i=2;i<=n/2;i++)
{
for(j=i;j<=n-2;j++)
{
if((i+j==n)&&IsPrime(i)&&IsPrime(j))
{
printf("%d=%d+%d\n",n,i,j);
flag=1;
break;
}
}
if(flag==1)
break;
}
if(!flag)
printf("%d
is
exception!\n",n);
}
putchar('\n');
}
void
Q4(double
x,int
n)
{
if(n<0)
{
printf("The
number
n
is
not
legal!\n");
return;
}
int
t=1;
double
result=0,powx=1;
for(int
i=1;i<=n;i++)
{
t*=(i+1);//t==(i+1)!
powx*=x;//powx==x^i
result+=powx/t;
}
printf("%.2lf/2!+%.2lf^2/3!+…+%.2lf^%d=%.2lf\n\n",x,x,x,n+1,result);
}
void
main()
{
printf("****************Check
It*****************\n");
CheckThePrimeFun();
printf("***************Question
1****************\n");
Q1();
printf("***************Question
2****************\n");
printf("A
small
one:\n");
Q2(25);
printf("A
big
one:\n");
Q2(1000);
printf("***************Question
3****************\n");
printf("A
small
one:\n");
Q3(10);
printf("A
big
one:\n");
Q3(100);
printf("***************Question
1****************\n");
double
x;int
n;
printf("In
put
x
and
n:");
scanf("%lf%d",&x,&n);
if(x>10||n>10)//x是double型,范围有限
printf("Warning:\nIf
the
x
is
big
too
much,you
may
not
get
the
correct
result!\n");
Q4(x,n);
}
//代码粘贴后全选,按键Alt+F8重排格式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式