pascal入门测试6(答案).doc_第1页
pascal入门测试6(答案).doc_第2页
pascal入门测试6(答案).doc_第3页
pascal入门测试6(答案).doc_第4页
pascal入门测试6(答案).doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

马克思手稿中有一道趣味数学问题:有30个人,其中有男人、女人和小孩,在一家饭馆吃饭共花了50先令;每个男人花3先令,每个女人花2先令,每个小孩花1先令,;编程计算男人、女人和小孩的人数。var a,b,c:integer;begin for a:=1 to 10 do for b:=1 to (50-a*3) div 2 do begin c:=(30-a-b); if a*3+b*2+c=50 then writeln(a:5,b:5,c:5); end; readln;end.一个两位整数A本身是素数,若将其个位数字与十位数字交换,得到一个新的两位数B,而B也是素数,我们则称A为无暇素数。例如:31是素数,个位数字与十位数字交换后得到13,也是素数。所以31是无暇素数。问题:给出二个两位整数M,N(MN),求出其间所有的无暇素数。输入:二个两位整数。输出:二个两位整数间全部的无暇素数,之间用一个逗号隔开。输入样例:11 21输出样例:11,13,17,19Var m,n,i,j,k:integer; f,g,h:boolean;Begin readln(m,n);h:=true; for i:=m to n do begin j:=(i mod 10)*10+i div 10; f:=true;k:=2; while (k=trunc(sqrt(i)and f do if i mod k=0 then f:=false else k:=k+1; g:=true; k:=2; while (k0 do begin s:=s+x mod 10; x:=x div 10; end; until t=n; writeln(s); readln;end.一个合数(质数的反数),去掉最低位,剩下的数仍是合数,再去掉剩下的数的最低位,余留下来的数还是合数,这样反复,一直到最后剩下的一位数仍为合数,我们把这样的数称为纯粹合数。求所有的三位纯粹合数。var n,i,n1, a,t,j:integer; f:boolean;begin a:=0; for n:=200 to 999 do begin t:=0;n1:=n; for j:=1 to 3 do begin f:=true;i:=2; while (i0 do begin b:=b*10+a mod 10; a:=a div 10; end; n:=n+b;c:=n;d:=0; while c0 do begin d:=d*10+c mod 10; c:=c div 10; end; if n=d then writeln(Yes) else writeln(No); readln;end.若将一个正整数化为二进制数,在此二进制数中,我们将数字1的个数多于数字0的个数的这类二进制数称为A类数,否则就称其为B类数。 例如:(13)10=(1101)2 其中1的个数为3,0的个数为1,则称此数为A类数; (10)10=(1010)2 其中1的个数为2,0的个数也为2,称此数为B类数; (24) 10=(11000) 2 其中1的个数为2,0的个数为3,则称此数为B类数;程序要求:输入11000之中(包括1与1000)的一个正整数,输出它是A类数还是B类数。输入输出样例 输入:13 输出:A var n,a,b,y,l:integer;begin readln(n); a:=0;b:=1; repeat a:=a+b*(n mod 2); b:=b*10; n :=n div 2; until n=0; y:=0;l:=0; while a0 do begin if a mod 10=1 then y:=y+1 else l:=l+1; a:=a div 10; end; if yl then writeln(A) else writeln(B); readln;end.三个不相等的整数都小于10且大于1,其中两个较小数的积加上某一个数N(N从键盘输入)的和能被最大的数整除,求此三个数。var a,b,c,n:integer;begin write(n=);readln(n); for a:=2 to 7 do for b:=a+1 to 8 do for c:=b+1 to 9 do if (a*b+n) mod c=0 then writeln(a:3,b:3,c:3); readln;end.任意给出一个正整数N,找一个正整数M,使得N*M的值各位数字均为0和1组成,该程序找出满足条件的最小M。(如N17时,M653,N*M11101)。试完成。var n,m,i,j:longint; t:boolean;begin write(n=); readln(n); m:=0; repeat m:=m+1; i:=m*n; t:=true; while (i0)and t do begin j:=i mod 10; if (j=1) or (j=0) then write() else t:=false; i:=i div 10; end; until (t=true)or(m*n2000000000); if t then writeln(m=,m) else writeln(no); readln;end.亲密数对 如果有两个不同的整数,其中任一个数的全部因子(包括1,但不包括其自身)之各等于另一个数,反之亦然,则称这两个整数互为亲密数。例如220和284就是一对亲密数。因为220的因子有1,2,4,5,11,20,22,44,55,110。这些因子的和为284,而284的因子有1,2,4,71,142,它们的和为220。键盘输入正整数M,N(MN,试编程求出MN之间的所有亲密数对。注意在显示亲密数对时不要重复显示。var n,m,i,j,k,s,s1:longint;begin write(m,n=); readln(m,n); for i:=m to n do begin s:=0; for j:=1 to i div 2 do if

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论