《[其它考试]省考C语言程序设计题附答案.doc》由会员分享,可在线阅读,更多相关《[其它考试]省考C语言程序设计题附答案.doc(34页珍藏版)》请在金锄头文库上搜索。
1、 1.素数1. 100,999范围内同时满足以下两个条件的十进制数. 其个位数字与十位数字之和除以10所得的余数是百位数字;该数是素数; 求有多少个这样的数? 15#includeint prime(int x)int i,k;if(x2) return(0);k=sqrt(x);for(i=2;ik) return(1);else return(0);main() int i,n=0,a,b,c;for(i=100;i=999;i+) a=i/100; b=i%100/10; c=i%10; if (b+c)%10=a&prime(i) n+;printf(Total is:%d,n);2.
2、 300,800范围内同时满足以下两个条件的十进制数. 其个位数字与十位数字之和除以10所得的余数是百位数字 ;该数是素数;求满足上述条件的最大的三位十进制数。7613. 除1和它本身外,不能被其它整数整除的正整数称为素数(注:1不是素数,2是素数)。若两素数之差为2 ,则称两素数为双胞胎数,问31,601之间有多少对双胞胎数。22#includeint prime(int x)int i,k;if(x2) return(0);k=sqrt(x);for(i=2;ik) return(1);else return(0);main() int i,n=0;for(i=31;i=599;i+)if
3、 (prime(i)&prime(i+2) n+;printf(Total is:%dn,n);4.数学家哥德巴赫曾猜测:任何大于6的偶数都可以分解成两个素数(素数对)的和。但有些偶数可以分解成多种素数对的和,如: 10=3+7,10=5+5,即10可以分解成两种不同的素数对。试求6744可以分解成多少种不同的素数对(注: A+B与B+A认为是相同素数对)144#includeint prime(int x)int i,k;if(x2) return(0);k=sqrt(x);for(i=2;ik) return(1);else return(0);main() int i,n;n=0;for
4、(i=31;i=599;i+)if (prime(i)&prime(i+2) n+;printf(Total is:%dn,n);5. 两个素数之差为2,则称这两个素数为双胞胎数。求出200,1000之间的最大一对双胞胎数的和。17646. 一个素数(设为p)依次从最高位去掉一位,二位,三位,若得到的各数仍都是素数(注:除1和它本身外,不能被其它整数整除的正整数称为素数,1不是素数,2是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。例如,617,17,7都是素数,因此617是逆向超级素数,尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。试求100,999之内的
5、所有逆向超级素数的个数。 397.德国数学家哥德巴赫曾猜测:任何大于6的偶数都可以分解成两个素数(素数对)的和。但有些偶数可以分解成多种素数对的和,如: 10=3+7,10=5+5,即10可以分解成两种不同的素数对。试求1234可以分解成多少种不同的素数对(注: A+B与B+A认为是相同素数对)258.求100,900之间相差为12的素数对(注:要求素数对的两个素数均在该范围内)的个数。50#includeint prime(int x)int i,k;if(x2) return(0);k=sqrt(x);for(i=2;ik) return(1);else return(0);main()
6、int i,n=0;for(i=100;i=900-12;i+)if (prime(i)&prime(i+12) n+;printf(Total is:%dn,n);9.一个素数(设为p)依次从最高位去掉一位,二位,三位,若得到的各数仍都是素数(注:1不是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。例如,617,17,7都是素数,因此617是逆向超级素数,但尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。试求100,999之内的所有逆向超级素数的和。21645#includeint prime(int x) int i,k;k=sqrt(x);for(i=2
7、;ik) return(1);else return(0); main() int i,s=0;int prime(int x);for(i=100;i=999;i+)if (prime(i)&prime(i%100)&prime(i%10) if (i%100/10!=0)&(i%10!=0)&(i%10!=1) s=s+i;printf(Total is:%dn,s);10.一个素数(设为p)依次从最高位去掉一位,二位,三位,若得到的各数仍都是素数(注:1不是素数,2是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。例如,617,17,7都是素数,因此617是逆向超级素数,但尽
8、管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。试求100,999之内的所有逆向超级素数从大到小数的第10个素数是多少?79711.一个自然数是素数,且它的数字位置经过任意对换后仍为素数,则称为绝对素数。如13,试求所有两位绝对素数的和。42912.在200,900范围 内同时满足以下两个条件的十进制数:其个位数字与十位数字之和除以10所得的余数是百位数字; 该数是素数;问有多少个这样的数?1413.一个素数,依次从个位开始去掉一位,二位.,所得的各数仍然是素数,称为超级素数。求100,999之内超级素数的个数。14#includeint prime(int x)int i,
9、k;if(x2) return(0);k=sqrt(x);for(i=2;ik) return(1);else return(0);main() int i,s=0;for(i=200;i=999;i+)if (prime(i)&prime(i/100)&prime(i/10) s+;printf(Total is: %dn,si); 14. 若两个连续的自然数的乘积减1后是素数,则称此两个连续自然数为友数对,该素数称为友素数。例如,由于 8*9-1=71, 因此,8与9是友数对,71是友素数。求100,200之间的第10个友素数对所对应的友素数的值(按由小到大排列)。17291#includ
10、eint prime(int x)int i,k;if(x2) return(0);k=sqrt(x);for(i=2;ik) return(1);else return(0);main() int i,s=0;for(i=100;i=200;i+)if (prime(i*(i+1)-1) s+; if (s=10) break;printf(Total is:%dn,i*(i+1)-1);15.求2,400中相差为10的相邻素数对的对数。516.若两个连续的自然数的乘积减1后是素数,则称此两个连续自然数为友数对,该素数称为友素数。例如,由于 8*9-1=71, 因此,8与9是友数对,71是友
11、素数。求50,150之间的友数对的数目。3817. 若两个自然连续数乘积减1后是素数,则称此两个自然连续数为友数对,该素数称为友素数,例:2*3-1=5,因此2与3是友数对,5是友素数,求40,119之间友素数对的数目。3018.梅森尼数是指能使2n-1为素数的数n,求1,21范围内有多少个梅森尼数?7#includeint prime(long x) long k;long i;if(i2) return(0);k=sqrt(x);for(i=2;ik) return(1);else return(0);main() int i,s=0;for(i=1;i=21;i+)if (prime(l
12、ong)(pow(2,i)-1)&(long)(pow(2,i)-1)!=1)&(long)(pow(2,i)-1)!=0) s+;printf(nTotal is:%d,%ldn,s,(long)(pow(2,i)-1); 2. 取数字19. 300,800范围内同时满足以下两个条件的十进制数. 其个位数字与十位数字之和除以10所得的余数是百位数字 ;该数是素数;求满足上述条件的最大的三位十进制数。76120. 求符合下列条件的四位完全平方数(某个正整数A是另一个正整数B的平方,则称A为完全平方数),它的千位数字与十位数字之和等于百位数字与个位数字之积,例如,3136=562, 且3+3=1*6 故3136是所求的四位完全平方数. 求其中最大的一个数。792121.设某四位数的千位数字平方与十位数字的平方之和等于百位数字的立方与个位数字的立方之和,例如,对于四位数:3201, 32+02=23+13,试问所有这样的四位数之和是多少? 97993main()long i,k=0;int a,b,c,d;for(i=1000;i=9999;i+) a=i/1000; b=i%1000/100; c=i%100/10; d=i%10; if (a*a+c*