c语言程序设计自第五个实验开始源代码1资料.docx
- 文档编号:3004054
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:30
- 大小:97.61KB
c语言程序设计自第五个实验开始源代码1资料.docx
《c语言程序设计自第五个实验开始源代码1资料.docx》由会员分享,可在线阅读,更多相关《c语言程序设计自第五个实验开始源代码1资料.docx(30页珍藏版)》请在冰豆网上搜索。
c语言程序设计自第五个实验开始源代码1资料
实验5三种基本结构的综合应用
4.一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:
除1和它本身外,不能被其它整数整除的正整数称为素数,1不是素数,2是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。
例如,617,17,7都是素数,因此617是逆向超级素数,尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。
试求[100,999]之内的所有逆向超级素数的个数。
#include"stdio.h"
main()
{inti,j,k,m,p,q,n=0;
for(i=100;i<=999;i++)
{for(j=2;j
if(i%j==0)break;
if(j>=i)/*三位数是素数时*/
{k=i%100;/*去掉百位数字*/
if(k>=10)/*十位数字不是0时*/
{for(m=2;m if(k%m==0)break; if(m>=k)/*两位数是素数时*/ {p=i%10;/*p为个位数字*/ for(q=2;q if(p%q==0)break; if(q>=p)n++;}}}} printf("%d\n",n);} Key: 57 5.求[2,400]中相差为10的相邻素数对的对数。 #include"stdio.h" main() {inti,j,k,m,p,q,n=0; for(i=2;i<=400;i++) {for(j=2;j if(i%j==0)break; if(j>=i)/*i是素数时*/ {for(k=i+1;k {for(m=2;m if(k%m==0)break;/*k不是素数时终止if语句的内层循环*/ if(m>=k)break;}/*k是素数时终止if语句的外层循环*/ if(k>=i+10)/*[i+1,i+9]不是素数时*/ {for(q=2;q if(k%q==0)break; if(q>=k)/*i+10是素数时*/ n++;}}} printf("%d\n",n);} Key: 5 6.求[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: 2357131719 7.求1000以内的亲密数对 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的功能是: 利用折半查找法查找整数m在数组中的位置。 若找到,返回其下标值;否则,返回-1。 折半查找的基本算法是: 每次查找前先确定数组中待查的范围low和high(low 如果m的值大于中间位置元素的值,则下一次的查找范围落在中间位置之后的元素中;反之,下一次的查找范围落在中间位置之前的元素中。 直到low>high,查找结束。 请改正程序中的错误,使它能得出正确的结果。 #include #defineN10 main() {inti,a[N]={-3,4,7,9,13,45,67,89,100,180},k=-1,m; intlow=0,high=N-1,mid; printf("a数组中的数据如下: ");
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 第五 实验 开始 源代码 资料