LAB057-6统计素数并求和(20分)本题要求统计给定整数M和N区间内素数的个数并对它们求和。输入格式:输入在一行中给出两个正整数M和N(1≤M≤N≤500)。输出格式:在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。输入样例:1031输出样例:7143#includestdio.h#includemath.hintisPrime(intn){inti,sign=1;if(n2)sign=0;for(i=2;i=sqrt(n);i++){if(n%i==0){sign=0;}}returnsign;}intmain(){intsum=0,M,N,i,count=0;scanf(%d%d,&M,&N);for(i=M;i=N;i++){if(isPrime(i)){sum=sum+i;count++;}}printf(%d%d,count,sum);return0;}7-7特殊a串数列求和(20分)给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。输入格式:输入在一行中给出不超过9的正整数a和n。输出格式:在一行中按照“s=对应的和”的格式输出。输入样例:23输出样例:s=246#includestdio.hintmain(){inta,t,n,i,sum;scanf(%d%d,&a,&n);sum=0,t=0;for(i=1;i=n;i++){t=t*10+a;sum=sum+t;}printf(s=%d,sum);return0;}7-8猜数字游戏(15分)猜数字游戏是令游戏机随机产生一个100以内的正整数,用户输入一个数对其进行猜测,需要你编写程序自动对其与随机产生的被猜数进行比较,并提示大了(“Toobig”),还是小了(“Toosmall”),相等表示猜到了。如果猜到,则结束程序。程序还要求统计猜的次数,如果1次猜出该数,提示“Bingo!”;如果3次以内猜到该数,则提示“LuckyYou!”;如果超过3次但是在N(3)次以内(包括第N次)猜到该数,则提示“GoodGuess!”;如果超过N次都没有猜到,则提示“GameOver”,并结束程序。如果在到达N次之前,用户输入了一个负数,也输出“GameOver”,并结束程序。输入格式:输入第一行中给出两个不超过100的正整数,分别是游戏机产生的随机数、以及猜测的最大次数N。最后每行给出一个用户的输入,直到出现负数为止。输出格式:在一行中输出每次猜测相应的结果,直到输出猜对的结果或“GameOver”则结束。输入样例:5847050565860-2输出样例:ToobigToosmallToosmallGoodGuess!#includestdio.hintmain(){intnum,n;intinp;intfinished=0;intcnt=0;scanf(%d%d,&num,&n);do{scanf(%d,&inp);cnt++;if(inp0){printf(GameOver\n);finished=1;}elseif(inpnum){printf(Toobig\n);}elseif(inpnum){printf(Toosmall\n);}else{if(cnt==1){printf(Bingo!\n);}elseif(cnt=3){printf(LuckyYou!\n);}else{printf(GoodGuess!\n);}finished=1;}if(cnt==n){if(!finished){printf(GameOver\n);finished=1;}}}while(!finished);return0;}7-9兔子繁衍问题(15分)一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对?输入格式:输入在一行中给出一个不超过10000的正整数N。输出格式:在一行中输出兔子总数达到N最少需要的月数。输入样例:30输出样例:9#includestdio.hintmain(void){intN;scanf(%d,&N);if(N==1)printf(1);else{inti,count,x1,x2,sum,x;sum=2,x1=1,x2=1,x=0;for(i=2;x2N;i++){x=x1+x2;x1=x2;x2=x;}printf(%d,i);}return0;}7-10高空坠球(20分)皮球从某给定高度自由落下,触地后反弹到原高度的一半,再落下,再反弹,……,如此反复。问皮球在第n次落地时,在空中一共经过多少距离?第n次反弹的高度是多少?输入格式:输入在一行中给出两个非负整数,分别是皮球的初始高度和n,均在长整型范围内。输出格式:在一行中顺序输出皮球第n次落地时在空中经过的距离、以及第n次反弹的高度,其间以一个空格分隔,保留一位小数。题目保证计算结果不超过双精度范围。输入样例:335输出样例:94.91.07-11求分数序列前N项和(15分)本题要求编写程序,计算序列2/1+3/2+5/3+8/5+...的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。输入格式:输入在一行中给出一个正整数N。输出格式:在一行中输出部分和的值,精确到小数点后两位。题目保证计算结果不超过双精度范围。输入样例:20输出样例:32.66#includestdio.hintmain(void){intn=0,time=0;doublesum=0,h=0;scanf(%lf%d,&h,&n);while(h!=0&&timen){sum+=h;time++;h=h/2;sum+=h;}if(n==0){sum=0;h=0;}elsesum=sum-h;printf(%0.1f%0.1f,sum,h);return0;}#includestdio.hintmain(void){intN,count;doublefm=1,fz=2,i,sum=0,t;scanf(%d,&N);for(count=1;count=N;count++){i=1.0*fz/fm;sum=sum+i;t=fm+fz;fm=fz;fz=t;}printf(%.2f\n,sum);return0;}7-1求e的近似值(15分)自然常数e可以用级数1+1/1!+1/2!+⋯+1/n!来近似计算。本题要求对给定的非负整数n,求该级数的前n项和。输入格式:输入第一行中给出非负整数n(≤1000)。输出格式:在一行中输出部分和的值,保留小数点后八位。输入样例:10输出样例:2.71828180#includestdio.hintmain(void){inti,j,n;doublefac=1;doublesum=1;scanf(%d,&n);for(i=1;i=n;i++){fac=fac*i;sum=sum+1.0/fac;}printf(%.8lf,sum);return0;}7-2换硬币(20分)将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?输入格式:输入在一行中给出待换的零钱数额x∈(8,100)。输出格式:要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量,fen2:2分硬币数量,fen1:1分硬币数量,total:硬币总数量”。最后一行输出“count=换法个数”。输入样例:13输出样例:fen5:2,fen2:1,fen1:1,total:4fen5:1,fen2:3,fen1:2,total:6fen5:1,fen2:2,fen1:4,total:7fen5:1,fen2:1,fen1:6,total:8count=4#includestdio.h#includemath.hintmain(){intc5=0,c2=0,c1=0,cnt=0;intx=13;scanf(%d,&x);for(c5=x/5;c50;c5--)for(c2=x/2;c20;c2--)for(c1=x;c10;c1--)if(c5*5+c2*2+c1==x){//之前这里通不过,把c5写成了c1,日了狗printf(fen5:%d,fen2:%d,fen1:%d,total:%d\n,c5,c2,c1,c5+c2+c1);cnt++;}printf(count=%d,cnt);return0;}7-3输出三角形字符阵列(15分)本题要求编写程序,输出n行由大写字母A开始构成的三角形字符阵列。输入格式:输入在一行中给出一个正整数n(1≤n7)。输出格式:输出n行由大写字母A开始构成的三角形字符阵列。格式见输出样例,其中每个字母后面都有一个空格。输入样例:4输出样例:ABCDEFGHIJ#includestdio.hintmain(){charc='A';intn;scanf(%d,&n);while(n){inti;for(i=0;in;i++)putchar(c++),printf();n--;printf(\n);}return0;}7-4求幂级数展开的部分和(20分)已知函数ex可以展开为幂级数1+x+x2/2!+x3/3!+⋯+xk/k!+⋯。现给定一个实数x,要求利用此幂级数部分和求ex的近似值,求和一直继续到最后一项的绝对值小于0.00001。输入格式:输入在一行中给出一个实数x∈[0,5]。输出格式:在一行中输出满足条件的幂级数部分和,保留小数点后四位。输入样例:1.2输出样例:3.3201#includestdio.hintmain(void){longlongintn;inti=0,a[1000],j=0,t=0;scanf(%lld,&n);if(n0)printf(error!);if(n==0)printf(0);while(n){a[j++]=n%10;n/=10;}for(i=j-1;i=0;i--){printf(%d,a[i]);}return0;}7-5输出整数各位数字(15分)本题要求编写程序,对输入的一个整数,从高位开始逐位分割并输出它的各位数字。输入格式:输入在一行中给出一个长整型范围内的非负整数。输出格式:从高位开始逐位输出该整数的各位数字,每个数字后面有一个空格。输入样例:123456输出样例:123456#includestdio.h#includemath.hintmain(){inta,b,t=0,i,number;scanf(%d,&number);a=number;if(number==0)printf(0);elsedo{a=a/10;t++;}while(a0);while(t0){b=pow(10,t-1);printf(%d,number/b);t--;number=number%b;}return0;}7-6验证“哥德巴赫猜想”(20分)数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和。输入格式:输入在一行中给出一个(2,2000000000]范围内的偶数N。输出格式:在一行中按照格式“N=p+q”输出N的素数分解,其中p≤q均为素数。又因为这样的分解不唯一(例如24还可以分解为7+17),要求必须输出所有解中p最小的解。输入样例:24输出样例:24=5+19#includestdio.hintisprime(intp);intmain(void){intn;intp,q;scanf(%d,&n);for(p=2;p=n/2;p++){q=n-p;if(isprime(p