if x if (a+b)/(c+d)=x/y d=x+y s=s+d endif endif endf endf ?s 32、若两个连续的自然数的乘积减1后是素数,则称此两个连续自然数为友数对,该素数称为友素数。例如,由于 8*9-1=71, 因此8与9是友数对,71是友素数。求[50,150]之间的友数对的数目。正确答案38 n=0 for i=50 to 149 flag=1 a=i*(i+1)-1 for j=2 to a-1 if mod(a,j)=0 flag=0 exit endif endfor if flag=1 n=n+1 endif endfor ? n 33、求[1,50]之间的所有整数能构成直角三角形的三边的组数。例如3*3+4*4=5*5,它们构成直角三角形。所以{3,4,5}作为一组。但{4,3,5}视为{3,4,5}相同的一组。正确答案20 n=0 for c=1 to 50 for a=1 to c for b=1 to a if a^2+b^2=c^2 n=n+1 endif endf endf endf ?n 34、一个自然数是素数,且它的数字位置经过任意对换后仍为素数,则称为绝对素数。如13,试求两位数中最大的绝对素数。 正确答案97 Max=0 for x=10 to 99 for i=2 to x-1 a=int(x/10) b=mod(x,10) if mod(x,i)=0 exit endif endf if i>=x y=b*10+a for j=2 to y-1 if mod(y,j)=0 exit endif endf if j>=y and y>max max=y endif endif endf ?max 35、除1和它本身外,不能被其它整数整除的正整数称为素数(注:1不是素数,2是素数)。若两素数之差为2 ,则称两素数为双胞胎数,问[200,1000]之间有多少对双胞胎数。正确答案 20 n=0 t=31 for i=201 to 998 f=1 for a=2 to i-1 if mod(i,a)=0 f=0 exit endif endfor if f=1 if i-t=2 n=n+1 9 endif t=i endif endfor ?n 36、自然数对是指两个自然数的和与差都是平方数,如8和17的和8+17=25与其差17-8=9都是平方数,则称8和17是自然数对(8,17)。 endif endfor ?max 39、一个自然数是素数,且它的数字位置经过任意对换后仍为素数,则称为绝对素数。如13,试求所有两位绝对素数的和。正确答案429 s=0 假定(a,b)与(b,a)是同一个自然数对且假定a>=b,求所有小于或等于100(即: a<=100,b<=100,a<>b,a和b均不为0)的自然数对中b之和。正确答案1160 s=0 for a=1 to 100 for b=1 to a-1 if sqrt(a+b)=int(sqrt(a+b)) and sqrt(abs(a-b))=int(sqrt(abs(a-b))) s=s+b endif endf endf ?s 37、编写程序,求出3到100之间的所有非偶数非素数的数之和。 正确答案1441 s=0 for i=3 to 100 for j=2 to i-1 if mod(i,j)=0 and mod(i,2)<>0 s=s+i exit endif endfor endfor ? s 38、斐波那契数列的前二项是1,1,其后每一项都是前面两项之和,求:10000000以内最大的斐波那契数? 正确答案9227465 dimension f(1000) f(1)=1 f(2)=1 for n=3 to 1000 f(n)=f(n-1)+f(n-2) if f(n)<=10000000 max=f(n) for x=10 to 99 for i=2 to x-1 a=int(x/10) b=mod(x,10) if mod(x,i)=0 exit endif endf if i>=x y=b*10+a for j=2 to y-1 if mod(y,j)=0 exit endif endf if j>=y s=s+y endif endif endf ?s 40、计算y=x/1!-x^3/3!+x^5/5!-x^7/7!+??前20项的值(已知:x=2)。要求:按四舍五入的方式精确到小数点后第二位。 正确答案0.91 s=0 x=2 for i=1 to 20 t=1 for j=1 to 2*i-1 t=t*j endfor s=s+x^(2*i-1)/t x=-x endfor ?round(s,2) 10 41、数列:e(1)=e(2)=1 , e(n)=(n-1)*e(n-1)+(n-2)*e(n-2) (n>2)s=0 a=2 称为e数列,每一个e(n),(n=1,2,?)称为e数。求[1,30000]之内e数的个数。 正确答案8 dimension e(30000) e(1)=1 e(2)=1 s=2 for n=3 to 30000 e(n)=e(n-2)*(n-2)+e(n-1)*(n-1) if e(n)<30000 s=s+1 endif endfor ?s 42、已知:f(0)=f(1)=1 f(2)=0 f(n)=f(n-1)-2*f(n-2)+f(n-3) (n>2) 求f(0)到f(50)中的最大值。 正确答案598325 max=1 dimension f(51) f(1)=1 f(2)=1 f(3)=0 for n=4 to 51 f(n)=f(n-1)-2*f(n-2)+f(n-3) if max 43、某一正整数,进行递减,每次将该数减半后再减一,当对该数进行第10次减半时发现该数只剩下1不能再减了,求该数。 正确答案1534 x=1 for i=1 to 9 x=(x+1)*2 endf ?x 44、求数列:2/1,3/2,5/3,8/5,13/8,21/13,?? 前50项之和(注:此数列从第二项开始,其分子是前一项的分子与分母之和,其分母是前一项的分子)。(按四舍五入的方式精确到小数点后第二位)正确答案81.20 b=1 for i=1 to 50 s=s+a/b t=a a=a+b b=t next ?round(s,2) 45、已知:f(n)=f(n-1)+2*f(n-2)-5*f(n-3), f(0)=1, f(1)=2, f(2)=3,求f(0)+f(1)+?f(30)。 正确答案-750874 dimension f(31) f(1)=1 f(2)=2 f(3)=3 s=6 for n=4 to 31 f(n)=f(n-1)+2*f(n-2)-5*f(n-3) s=s+f(n) endf ?s 46、已知:a1=1, a2=1/(1+a1), a3=1/(1+a2), a4=1/(1+a3), ??, 求a50.(按四舍五入的方式精确到小数点后第三位)。 正确答案0.618 dimension a(50) a(1)=1 for n=2 to 50 a(n)=1/(1+a(n-1)) endfor ?round(a(50),3) 47、当n=100时,计算 s=(1-1/2)+(1/3-1/4)+??+(1/(2n-1)-1/(2n))的值。要求:按照四舍五入的方式精确到小数点后第三位。正确答案0.691 s=0 for n=1 to 100 x=(1/(2*n-1)-1/(2*n)) s=s+x endfor ?round(s,3) 11
相关推荐: