=k)/*两位数是素数时*/{p=i%10;/*p为个位数字*/for(q=2;q=p)n++;}}}}printf("%d",n);}Key:575.求[2,400]中相差为10
3、的相邻素数对的对数。#include"stdio.h"main(){inti,j,k,m,p,q,n=0;for(i=2;i<=400;i++){for(j=2;j=i)/*i是素数时*/{for(k=i+1;k=k)break;}/*k是素数时终止if语句的外层循环*/if(k>=i+10)/*[i+1,i+9]不是素数时*/{
4、for(q=2;q=k)/*i+10是素数时*/n++;}}}printf("%d",n);}Key:56.求[1,21]范围内的梅森尼数#include"math.h"main(){longn,k=2,m,p,q;for(n=2;n<=21;n++){k=k*2;p=k-1;m=sqrt(p);for(q=2;q<=m;q++)if(p%q==0)break;if(q>m)printf("%5ld",n);}}Key:23571317197.求1000以内的亲
5、密数对main(){inta,b,n,m,q,p;for(a=1;a<1000;a++){n=0;for(q=1;q<=a/2;q++)if(a%q==0)n+=q;for(b=a;b<=1000;b++){m=0;for(p=1;p<=b/2;p++)if(b%p==0)m+=p;if(a==m&&b==n)printf("%5d%5d",a,b);}}}/*Key:662828220284496496*/实验6数组及其应用3.由N个有序整数组成的数列已放在一维数组中,下列给定程序中函数fun的功能是:利用折半查找法查
6、找整数m在数组中的位置。若找到,返回其下标值;否则,返回-1。折半查找的基本算法是:每次查找前先确定数组中待查的范围low和high(lowhigh,查找结束。请改正程序中的错误,使它能得出正确的结果。#include#defineN10main(){inti,a[N]={-3,4,7,9,13,45,67,
7、89,100,180},k=-1,m;intlow=0,high=N-1,mid;printf("a数组中的数据如下:");for(i=0;ia[mid])low=mid+1;/************found**
8、**********/else{k=mid;continue;}}if(k>=0)printf("m=%d,index=%d",m,k);elseprintf("Notbefound!");}Key:第一个错误:elseIf(m>a[mid])应改为:elseif(m>a[mid])因C语言关键字必须小写。第