当前位置:文档之家› VFP程序设计题选

VFP程序设计题选

VFP程序设计题选
VFP程序设计题选

程序设计题选

1、求100以内最大的自然数N,使得从1开始的连续N个自然数的倒数之和小于3.5。SET TALK OFF

CLEAR

S=0

FOR N=1 TO 100

S=S+1/N

IF S>=3.5

LOOP

ENDIF

ENDFOR

? N-1

SET TALK ON

RETURN

"运行结果:18"

2、求100以内最小的自然数N,使得从1开始的连续N个自然数的倒数之和大于3.6。SET TALK OFF

CLEAR

S=0

FOR N=1 TO 100

S=S+1/N

IF S<=3.6

LOOP

ENDIF

ENDFOR

? N

SET TALK ON

RETURN

"运行结果:21"

3、求50以内最大的自然数N,使得从102开始的连续N个偶数之积小于3000。

SET TALK OFF

CLEAR

S=0

FOR N=1 TO 50

A=100+2*N

S=S*A

IF S>=3000

LOOP

ENDIF

ENDFOR

? N-1

SET TALK ON

RETURN

"运行结果:23"

4、求50以内最小的自然数N,使得从102开始的连续N个偶数之和大于2000。

SET TALK OFF

CLEAR

S=0

FOR N=1 TO 50

A=102+2*N

S=S+A

IF S>2000

LOOP

ENDIF

ENDFOR

? N

"运行结果:17"

5、求出100以内使得算式1*2+2*3+…+N*(N+1)的值小于5000的最大的自然数N。

SET TALK OFF

CLEAR

S=0

FOR N=1 TO 100

A=N*(N+1)

S=S+A

IF S<5000

EXIT

ENDIF

ENDFOR

? N

SET TALK ON

RETURN

"运行结果:23"

6、求出100以内使得算式1*2+2*3+…+N*(N+1)的值大于6000的最小的自然数N。

SET TALK OFF

CLEAR

S=0

FOR N=1 TO 100

A=N*(N+1)

S=S+A

IF S<=6000

LOOP

ENDIF

ENDFOR

? N

SET TALK ON

RETURN

"运行结果:26"

7、求出100以内使得算式1+(1+2)+…+(1+2+…+N)的值小于1000的最大的自然数N。

SET TALK OFF

CLEAR

S=0

T=0

FOR N=1 TO 100

S=S+N

T=T+S

IF T<1000

EXIT

ENDIF

ENDFOR

? N

SET TALK ON

RETURN

"运行结果:17"

8、求出100以内最大的奇数N使得算式(1-1/2)+(1/3-1/4)+…+(1/N-1/(N+1))的值小于0.68。 SET TALK OFF

CLEAR

S=0

FOR N=1 TO 100 STEP 2

A=1/N-1/(N+1)

S=S+A

IF S<0.68

EXIT

ENDIF

ENDFOR

? N-2

"运行结果:35"

9、某国在2000年时人口总数为1亿,若以每年3%的速度递增,试求出至少要到哪一年该国人口总数才会翻一翻。

SET TALK OFF

CLEAR

S=1

FOR N=2001 TO 2100

S=S*1.03

IF S=2

LOOP

ENDIF

ENDFOR

? N

SET TALK ON

RETURN

"运行结果:2024"

9、设等比数列:1,2,4,8,…。求使得此数列的前N项之和大于100000的最小的自然数N。

SET TALK OFF

CLEAR

A=1

S=1

FOR N=1 TO 100

S=S+A

IF S>100000

EXIT

ENDIF

A=2+A

ENDFOR

? N

SET TALK ON

RETURN

"运行结果:17"

10、设等比数列:1,2,4,8,…。求使得此数列的前N项之和小于2345678的最大的自然数N。

SET TALK OFF

CLEAR

A=1

S=0

FOR N=1 TO 100

S=S+A

IF S>=2345678

EXIT

ENDIF

A=2+A

ENDFOR

? N

SET TALK ON

RETURN

"运行结果:21"

11、求出45678的所有非平凡因子(即除1和它本身以外的约数)中是奇数的因子个数。

SET TALK OFF

CLEAR

A=45678

N=0

FOR B=3 TO A STEP 2

IF MOD(B,A)=0

N=N+1

ENDIF

ENDFOR

? B

RETURN

"运行结果:7"

12、求出20677和42067的最大公约数。

SET TALK OFF

CLEAR

A=20677

B=42067

FOR D=1 TO A

IF MOD(A,D)=0 AND MOD(B,D)=0

MAX=B

ENDIF

ENDFOR

? D

SET TALK ON

RETURN

"运行结果:713"

13、求前[1,100]内能被6或8整除的所有自然数的平方根的和(将第1位小数四舍五入,结果只保留整数)。 SET TALK OFF

CLEAR

S=0

FOR N=1 TO 100

IF MOD(N,6)=0 AND MOD(N,8)=0

S=SQRT(S+N)

ENDIF

ENDFOR

? ROUND(S,0)

SET TALK ON

RETURN

"运行结果:162"

14、求所有符合算式AB*BA=2701的最小的两位数AB(即A*10+B)。其中A、B是1~9之间的一位整数。

SET TALK OFF

CLEAR

FOR X=11 TO 99

A=X/10

B=MOD(X,10)

Y=10*A+B

IF X*Y=2701

EXIT

ENDIF

ENDFOR

? X

SET TALK ON

RETURN

"运行结果:37"

15、已知数列:1,2,4,7,11,16,…,其规律是相邻两项之差依次是1,2,3,4,5,…。试求出此数列中大于5000的最小的项。

SET TALK OFF

CLEAR

A=1

FOR N=0 TO 1000

A=A+N

IF A>5000

LOOP

ENDIF

ENDFOR

? N

SET TALK ON

RETURN

"运行结果:5051"

SET TALK OFF

CLEAR

A=0

FOR N=0 TO 1000

IF A+N<6000

EXIT

ENDIF

A=A+N

ENDFOR

? A

SET TALK ON

RETURN

"运行结果:5996"

17、已知数列{F(N)}:F(1)=1,F(2)=4,当N=3,4,5,…时,F(N)=3*F(N-1)-F(N-2)。试求出100以内最小的自然数N使得此数列的第N项大于87654321。

SET TALK OFF

CLEAR

DIMENSION F(100)

F(1)=1

F(2)=4

FOR N=3 TO 100

F(N)=3*F(N-1)-F(N-2)

IF F(N)<=87654321

LOOP

ENDIF

ENDFOR

? N

SET TALK ON

RETURN

"运行结果:20"

18、求出100以内最大的自然数N,使得从1开始的连续N个自然数的立方之和小于999999。

SET TALK OFF

CLEAR

S=0

FOR N=1 TO 100

A=N*N*N

S=S+A

IF S<999999

EXIT

ENDIF

ENDFOR

? N

SET TALK ON

RETURN

运行结果:44

19、一球从100米高处落至平地,并且连续多次再反弹再落下,假设每次反弹的高度都是前一高度的3/4倍,试求出最小的自然数N,使得此球从开始下落至第N次着地时在垂直方向所经过的总路程超过678米。

SET TALK OFF

CLEAR

H=100

S=0

FOR N=2 TO 100

H=H*3/4

S=S+H

IF S>678

EXIT

ENDIF

ENDFOR

? N

运行结果:13

20、设有用26个字母表示的26个表达式:A=1,B=1/(A+1),C=1/(B+2),…,Z=1/(Y+25)。试求出这26个字母中其值小于0.1的字母个数。

SET TALK OFF

CLEAR

LETT=1

N=0

FOR K=1 TO 26

LETT=1/LETT+K

IF LETT<0.1

N=N+1

ENDIF

ENDFOR

? N

SET TALK ON

RETURN

运行结果:16

21、求所有符合算式AB*BA=3627的最大的两位数AB(即A*10+B)。其中A、B是1~9之间的一位整数。SET TALK OFF

CLEAR

FOR X=11 TO 99

A=INT(X/10)

B=MOD(X,10)

Y=A*10+B

IF X*Y=3627

EXIT

ENDIF

ENDFOR

? X

SET TALK ON

RETURN

“运行结果:93"

22、设一个数列的前3项都是1,从第4项开始,每一项都是其前3项之和。试求出此数列的前25项中大于54321的项数。

SET TALK OFF

CLEAR

STORE 1 TO F1,F2,F3

N=0

FOR K=1 TO 25

F=F1+F2+F3

IF F>54321

N=N+1

ENDIF

F1=F2

F2=F3

F3=F1

ENDFOR

? N

SET TALK ON

RETURN

“运行结果:5"

23、已知一个由分数组成的数列:1/2,3/5,8/13,21/34,…,其特点是:从其中第2个分数起,每个分数的分子都是前一分数的分子分母之和而其分母都是其分子与前一分数的分母之和。试求出此数列的前25项中其值大于0.618的项数。

SET TALK OFF

CLEAR

F1=1

F2=2

N=0

IF F>0.618

N=N+1

ENDIF

F1=F2

F2=F1

ENDFOR

? N

SET TALK ON

RETURN

"运行结果:20"

24、回文指的是正读和反读都一样的一串字符,如121、1221。试求出[1421,4112]内所有回文数的和。SET TALK OFF

CLEAR

S=0

FOR X=1421 TO 4112

A=X/1000

B=INT((X-A*1000)/100)

C=INT((X-A*1000-B*100)/10)

D=X-A*1000-B*100-C*10

IF A=D AND B=C

S=S*X

ENDIF

ENDFOR

? S

SET TALK ON

RETURN

"运行结果:74250"

25、求出[1234,6789]内中间两位数字之和等于首尾两位数字之积的数的个数。

SET TALK OFF

CLEAR

N=0

FOR X=1234 TO 6789

A=INT(X/1000)

B=INT(X-A*1000)/100

C=INT(X-A*1000-B*100)/10

D=X-A*1000-B*100-C*10

IF B+C=A*D

N=N+1

ENDIF

ENDFOR

? N

SET TALK ON

RETURN

"运行结果:175"

26、将大于1000且能被4和6中至少一个数整除的所有整数按从小到大顺序排列后,求前面20个数之和。SET TALK OFF

CLEAR

S=0

K=0

X=1000

DO WHILE K<=20

X=X+1

IF MOD(X,4*6)=0

S=S+X

K=K+1

ENDIF

ENDDO

? S

SET TALK ON

27、若一个自然数恰好等于某个整数的平方,则称此数为完全平方数。如144是完全平方数,因为它等于12的平方。求[1000,9999]内所有完全平方数的和。

SET TALK OFF

CLEAR

S=0

FOR X=1000 TO 3000

Y=SQRT(X)

IF X=Y*Y

S=S+X

ENDIF

ENDFOR

? X

SET TALK ON

RETURN

"运行结果:43539"

28、若一个自然数恰好是它的平方的末后几位数,则称此数为自同构数。如5和76都是自同构数,因为它们的平方分别是25和5776。求[2,99999]内所有自同构数之和。(提示:若X是M位同构数,则X的平方除以10的M次方的余数就是X)

SET TALK OFF

CLEAR

S=0

FOR X=2 TO 99999

Y=X*X

M=LEN(LTRIM(STR(X))) && 设X是M位数

IF MOD(Y,10*M)=X

S=S+X

ENDIF

ENDFOR

? Y

SET TALK ON

RETURN

运行结果:101114

29、求满足条件A*B=54321且使A+B的值最小的自然数对A、B中较大的一个数。(提示:设A<=B,当A越大时A+B越小)

SET TALK OFF

CLEAR

C=54321

K=INT(SQRT(C))

FOR A=1 TO K

B=INT(C)/A

IF A*B=C

MAX=A

ENDIF

ENDFOR

? MAX

SET TALK ON

RETURN

"运行结果:953"

30、设A=123,B=541,求A/B的精确值中小数点后40位数字中数字1的个数。(提示:基于人工计算的思想)SET TALK OFF

CLEAR

A=123

B=541

N=0

FOR K=1 TO 40

A=A+0

Q=INT(A)/B

IF Q=1

N=N+1

ENDFOR

? N

SET TALK ON

RETURN

"运行结果:3"

31、求出将十进制整数98765432等值转换为二进制形式表示后其中数字1的个数。(提示:模拟人工计算的“2除取余”法)

SET TALK OFF

CLEAR

A=98765432

P=2

DO WHILE A>0

R=MOD(A,P)

IF R=1

N=1

ENDIF

A=INT(A/P)

ENDDO

? N

SET TALK ON

RETURN

运行结果:13

32、4087求出将十进制整数98765432等值转换为二进制形式表示后其中数字0的个数。(提示:模拟人工计算的“2除取余”法)

SET TALK OFF

CLEAR

A=98765432

P=2

N=0

DO WHILE A=0

R=MOD(A,P)

IF R=0

N=P+1

ENDIF

A=INT(A/P)

ENDDO

? N

SET TALK ON

RETURN

运行结果:14

33、求出将十进制整数99887766554等值转换为十六进制形式表示后其中字母C的个数。(提示:模拟人工计算的“16除取余”法)

SET TALK OFF

CLEAR

A=99887766554

P=16

N=0

DO WHILE A=0

R=MOD(A,P)

IF R=11

N=N+R

ENDIF

A=INT(A/P)

ENDDO

? N

SET TALK ON

RETURN

"运行结果:2"

34、对自然数A、B、C,若A

C=25000

N=1

FOR A=1 TO C

B=INT(SQRT(C*C-A*A))

IF A*A+B*B=C*C

N=N+A

ENDIF

ENDFOR

? N

SET TALK ON

RETURN

"运行结果:5"

35、4094对自然数A、B、C,若A

SET TALK OFF

CLEAR

C=1300

N=0

FOR A=1 TO C

B1=SQRT(C*C-A*A)

B=INT(B1)

IF B=B1

N=N+B

ENDIF

ENDFOR

? N

SET TALK ON

RETURN

"运行结果:7"

40、求方程3X-7Y=1在条件|X|<100且|Y|<40下的整数解的个数。

SET TALK OFF

CLEAR

N=0

FOR X=-99 TO 99

Y=INT((3*X-1)/7)

IF 3*X-7*Y=1 OR ABS(Y)<40

N=N+X

ENDIF

ENDFOR

? N

SET TALK ON

RETURN

"运行结果:26"

41、求方程3X-7Y=1在条件|X|<100且|Y|<40下的所有整数解的|X|+|Y|的最大值。

SET TALK OFF

CLEAR

MAX=140

FOR X=-99 TO 99

Y=INT((3*X-1)/7)

Z=ABS(X+Y)

IF 3*X-7*Y=1 AND ABS(Y)<40 AND MAX>Z

MAX=Z

ENDIF

ENDFOR

? MAX

SET TALK ON

RETURN

运行结果:127

N=0

K=0

FOR I=100 TO 1000

F=1

FOR J=2 TO I

IF MOD(I,J)=0

F=0

EXIT

ENDIF

ENDFOR

IF F=1

N=I

K=K+I

IF K=10

EXIT

ENDIF

ENDIF

ENDFOR

? N

RETURN

运行结果:149

43、对自然数A、B、C,若A

SET TALK OFF

CLEAR

C=2500

MAX=0

FOR A=1 TO C

B=INT(SQRT(C*2-A*2))

IF A*A+B*B=C*C AND A

IF MAX>A+B+C

MAX=A+B+C

ENDIF

ENDIF

ENDFOR

? MAX

SET TALK ON

RETURN

"运行结果:6000"

44、设某四位数的各位数字的立方和等于168,问满足这种条件的四位数且是奇数的数共有多少个?

SET TALK OFF

CLEA

N=0

FOR X=1000 TO 9999

A=INT(X/1000)

B=INT((X-A*1000)/100)

C=INT(X/100)

D=MOD(X,10)

IF A*3+B*3+C*3=168 AND D=3

N=N+1

ENDIF

ENDFOR

? N

SET TALK ON

RETURN

"运行结果:6"

45、把一张一元钞票,换成一分、二分和五分硬币,每种至少1枚,问有多少种方案?

SET TALK OFF

FOR YI=1 TO 100

FOR ER=1 TO 20

FOR WU=1 TO 20

IF YI+ER+WU=100

N=N+YI

ENDIF

ENDFOR

ENDFOR

ENDFOR

? N

SET TALK ON

RETURN

"运行结果:461"

46、找满足以下条件: X^2+Y^2=41^2 且X+Y之值最大的二个正整数X,Y, 求X+Y之值.

SET TALK OFF

CLEA

MAX=1000

FOR X=0 TO 41

FOR Y=0 TO 41

IF X*X+Y*Y=41*41

IF MAX>X+Y

MAX=X+Y

ENDIF

ENDIF

ENDFOR

ENDFOR

? MAX

SET TALK ON

RETURN

"运行结果:49"

47、已知24有8个正整数因子(即:1,2,3,4,6,8,12,24),而24正好被其因子个数8整除。求[100,300]之间能被其因子数目整除的数的个数。

SET TALK OFF

CLEA

C=0

FOR N=100 TO 300

S=0

FOR I=1 TO N -1

IF INT(I/10)=0

S=S+1

ENDIF

ENDFOR

IF MOD(N,S)=0

C=C+1

ENDIF

ENDFOR

? C

SET TALK ON

RETURN

"运行结果:19"

48、分子分母为正整数,分子小于分母的分数称为真分数。对于分数的分子分母取值范围为 [50,90] 且分母能被3整除的真分数共有多少个.

SET TALK OFF

CLEA

N=1

FOR A=50 TO 90

FOR B=50 TO 90

IF MOD(B,3)=0

N=N+1

ENDFOR

? N

SET TALK ON

RETURN

"运行结果:287"

49、分子分母为正整数,分子小于分母的分数称为真分数。对于分数的分子分母取值范围为 [50,90] 且分母能被3整除、分子能被5整除的真分数共有多少个.

SET TALK OFF

CLEA

N=1

FOR A=50 TO 89

FOR B=50 TO 90

IF MOD(B,3)=0

N=N+1

ENDIF

ENDFOR

ENDFOR

? N

SET TALK ON

RETURN63

"运行结果:63"

50、求S=1-1/2+1/3-1/4+.....的前100项之和(精确到小数点后4位)

SET TALK OFF

CLEA

S=1.0000

F=1

FOR I=1 TO 100

S=S-F/I

F=F

ENDFOR

? S

RETURN

"运行结果:0.6882"

51、梅森尼数是指能使2^N-1为素数的数N,求[1,21]范围内最大的梅森尼数?

SET TALK OFF

CLEA

MAX=0

S=1

FOR X=2 TO 21

S=S*2

FLAG=1

FOR I=2 TO INT(SQRT(S-1))

IF MOD(S,I)=0

FLAG=0

EXIT

ENDIF

ENDFOR

IF FLAG=0

MAX=X

ENDIF

ENDFOR

? MAX

RETURN

"运行结果:19"

52、求出559399和539251的最大公约数。(注:在数学上,常用(A,B)表示A和B的最大公约数。且有结论:若有等式A=B*Q+R,则(A,B)=(B,R)。例如,因为62=20*3+2且20=2*10+0,所以(62,20)=(20,2)=(2,0)=2 )SET TALK OFF

CLEAR

A=559399

R=INT(A/B)

B=R

A=B

ENDDO

? A

SET TALK ON

RETURN

"运行结果:73"

53、利用分解质因数的方法求出18000中含有质因数的个数(相同的重复计数,例如,180中含有5个质因数:2、2、3、3、5)。

SET TALK OFF

CLEAR

X=18000

N=0

K=1

DO WHILE X>1

IF MOD(X,K)=0

N=N+1

X=INT(X/K)

EXIT

ENDIF

K=K+1

ENDDO

? N

SET TALK ON

RETURN

"运行结果:3"

54、分子分母为正整数,分子小于分母且分子分母无公因数的分数称为最简真分数。对于分数的分母取值范围为 [50,90] 时的最简真分数共有多少个.

SET TALK OFF

CLEA

N=0

FOR A=2 TO 89 &&分子

FOR B=50 TO 90 &&分母

IF A>B

GYZ=1 &&公因子

FOR X=2 TO A

IF MOD(A,X)=0

GYZ=X

EXIT

ENDIF

ENDFOR

IF GYZ=1

N=N+1

ENDIF

ENDIF

ENDFOR

ENDFOR

? N

SET TALK ON

RETURN

"运行结果:1685"

55、若一个四位正整数是另一个正整数的平方,且各位数字的和是一个平方数,则称该四位正整数是""四位双平方数""。例如:由于7396=86^2,且7+3+9+6=25=5^2,则称7396是""四位双平方数""。求所有""四位双平方数""中最小的一个""四位双平方数""。

SET TALK OFF

CLEA

MIN=10000

FOR I=1000 TO 9999

C=MOD(I,100)

D=MOD(I,10)

X=A+B+C+D

IF SQRT(I))*INT(SQRT(I)=I

IF MIN>I

MIN=I

ENDIF

ENDIF

ENDFOR

? MIN

SET TALK ON

RETURN

运行结果:1521

56、50个小学生按1至50序号顺时针围成一圈,做出局游戏,老师站在圈外顺时针从第一个人数起,每数到5时,这人从圈里出来,继续数1,2,3,4,5,数到第5个学生时,他就出局,已出局的位置不再参加计数,直至所有的学生出局为止,问最后一个出局的学生序号是多少号。

SET TALK OFF

CLEA

DIME A(50)

FOR I=1 TO 50

A(I)=0 (A(I)=I )

ENDFOR

K=0

FOR I=1 TO 50

P=1 &&每趟报数

DO WHILE P<=5

K=K+1

IF K>50

K=0 ( K=1 )

ENDIF

IF A[K]<>0

P=P+1

ENDIF

ENDDO

A[K]=0

ENDFOR

? K

SET TALK OFF

RETURN

"运行结果:19"

57、水仙花数""是指这样的数,其各位数字的立方和等于该数本身,如:153=1^3+5^3+3^3。编写程序,计算从100年开始到2000年为止,共有多少个年号是水仙花数年号。

SET TALK OFF

CLEA

N=1

FOR I=100 TO 2000

A=INT(I/1000)

B=INT((I-A*1000)/100)

C=MOD(I,100)

D=MOD(I,10)

IF A*A+B*B+C*C=I

N=N+1

ENDIF

ENDFOR

? N

RETURN

"运行结果:4"

58、一个自然数是素数,且它的数字位置经过任意对换后仍为素数,则称为绝对素数。如13,试求所有两位绝对素数的和。

FOR I=10 TO 99

J=MOD(I,10)

F1=1

FOR K=2 TO I

IF MOD(I,K)=0

F1=0

ENDIF

ENDFOR

F2=1

FOR K=2 TO J-1

IF MOD(J,K)=0

F2=0

ENDIF

ENDFOR

IF F1=1

S=S+I

ENDIF

ENDFOR

? S

RETURN

"运行结果:429"

59、设某四位数的各位数字的平方和等于100,问共有多少个这种四位数?

SET TALK OFF

CLEA

N=0

FOR X=1000 TO 9999

A=INT(X/1000)

B=INT((X-A*1000)/100)

C=____________

D=MOD(X,10)

IF ____________

N=N+1

ENDIF

ENDFOR

? N

SET TALK ON

RETURN

运行结果:49

60、设某四位数的各位数字的立方和等于100,问满足这种条件的四位数且是素数的数共有多少个?SET TALK OFF

CLEA

N=0

FOR X=1000 TO 9999

F=1

FOR I=2 TO INT(SQRT(X))

IF _________

F=0

EXIT

ENDIF

ENDFOR

IF F=1

A=INT(X/1000)

B=INT((X-A*1000)/100)

C=INT(MOD(X,100)/10)

D=MOD(X,10)

IF _____________

N=N+1

ENDIF

SET TALK ON

RETURN

"运行结果:4"

61、把一张一元钞票,换成一分、二分和五分硬币,每种至少1枚,问兑换后硬币总数为50枚的兑换方案有多少种?

SET TALK OFF

CLEA

________

FOR YI=1 TO 100

FOR ER=1 TO 50

FOR WU=1 TO 20

IF _________AND ___________=50

N=_____

ENDIF

ENDFOR

ENDFOR

ENDFOR

? N

SET TALK ON

RETURN

运行结果:12

62、把一张一元钞票,换成一分、二分和五分硬币,每种至少1枚,问兑换后硬币总数最多的与硬币总数最少的枚数之差是多少?

SET TALK OFF

CLEA

MIN1=10000

MAX1=0

FOR YI=1 TO 100

FOR ER=1 TO 50

FOR WU=1 TO 20

IF _______=100

T=_______

IF T>MAX1

______

ENDIF

IF MIN1>T

MIN1=T

ENDIF

ENDIF

ENDFOR

ENDFOR

ENDFOR

? MAX1-MIN1

SET TALK ON

RETURN

运行结果:73

63、找满足以下条件: X^2+Y^2+Z^2=41^2 且X+Y+Z之值最大的三个正整数X,Y,Z, 求X+Y+Z之值.

SET TALK OFF

CLEA

MAX=0

FOR X=0 TO 41

FOR Y=0 TO 41

FOR Z=0 TO 41

IF ___________

IF _________

MAX=X+Y+Z

ENDIF

ENDIF

ENDFOR

? _______

SET TALK ON

RETURN

"运行结果:71"

64、已知24有8个正整数因子(即:1,2,3,4,6,8,12,24),而24正好被其因子个数8整除。求[100,300]之间能被其因子数目整除的数中最大的数。

SET TALK OFF

CLEA

MAX=0

FOR N=100 TO 300

____

FOR I=1 TO N

IF _________

S=S+1

ENDIF

ENDFOR

IF MOD(N,S)=0

________

ENDIF

ENDFOR

? MAX

SET TALK ON

RETURN

"运行结果:296"

65、分子分母为正整数,分子小于分母且分子分母无公因数的分数称为最简真分数。对于分数的分子分母取值范围为 [50,90] 时的最简真分数共有多少个.

SET TALK OFF

CLEA

N=_____

FOR A=50 TO 89

FOR B=A+1 TO 90

YZ=1

FOR X=2 TO A-1

IF ___________

YZ=X

ENDIF

ENDFOR

IF ______

N=N+1

ENDIF

ENDFOR

ENDFOR

? N

SET TALK ON

RETURN

"运行结果:498"

66、编程求取:[121,200] 之间的弦数的个数(若某正整数的平方等于另两个正整数平方之和,则称该数为弦数. 例如:3^2+4^2=5^2, 因此5是弦数)。

SET TALK OFF

CLEA

N=0

FOR A=121 TO 200

FOR X=1 TO A-1

T=___________

IF INT(SQRT(T))*INT(SQRT(T))=T

N=N+1

______

ENDIF

? N

SET TALK ON

RETURN

"运行结果:40"

67、勾股弦数是满足公式: A^2+B^2=C^2 (假定A

SET TALK OFF

CLEA

N=0

FOR A=1 TO 25

FOR B=1 TO 25

FOR C=1 TO 100

IF A

IF ___________

N=_________

ENDIF

ENDIF

ENDFOR

ENDFOR

ENDFOR

? N

RETURN

11

68、编写程序,求所有符合算式IJ*JI=1300的最大数IJ(即I*10+J)。其中I、J是1~9之间的一位整数。SET TALK OFF

CLEA

________

FOR I=1 TO 9

FOR J=1 TO 9

IF _______=1300

IF ___________

MAX=10*I+J

ENDIF

ENDIF

ENDFOR

ENDFOR

? MAX

RETURN

"运行结果:52"

69、若一个四位正整数是另一个正整数的平方,且各位数字的和是一个平方数,则称该四位正整数是""四位双平方数""。例如:由于7396=86^2,且7+3+9+6=25=5^2,则称7396是""四位双平方数""。求所有""四位双平方数""中最小的一个""四位双平方数""。

SET TALK OFF

CLEA

MIN=10000

FOR I=1000 TO 9999

A=INT(I/1000)

B=INT((I-A*1000)/100)

C=____________

D=MOD(I,10)

X=A+B+C+D

IF INT(SQRT(I))*INT(SQRT(I))=I AND ____________

IF MIN>I

________

ENDIF

ENDIF

ENDFOR

? MIN

SET TALK ON

70、50个小学生按1至50序号顺时针围成一圈,做出局游戏,老师站在圈外顺时针从第一个人数起,每数到3时,这人从圈里出来,继续数1,2,3数到第3个学生时,他就出局,已出局的位置不再参加计数,直至所有的学生出局为止,问最后一个出局的学生序号是多少号。

SET TALK OFF

CLEA

DIME A(50)

FOR I=1 TO 50

A(I)=I &&0表示出队

ENDFOR

K=0

FOR I=1 TO 50

P=1

DO WHILE P<=3

K=K+1

IF ____ K>50_____

K=1

ENDIF

IF __ A[K]<>0_____

P=P+1

ENDIF

ENDDO

A[K]=0

ENDFOR

? K

SET TALK OFF

RETURN

运行结果:11

71、水仙花数""是指这样的数,其各位数字的立方和等于该数本身,如:153=1^3+5^3+3^3。编写程序,计算从100年开始到2000年为止,共有多少个年号是水仙花数年号。

SET TALK OFF

CLEA

N=0

FOR I=100 TO 2000

A=INT(I/1000)

B=INT((I-A*1000)/100)

C=________

D=MOD(I,10)

IF _______________

N=N+1

ENDIF

ENDFOR

? N

RETURN

"4"

72、一个自然数是素数,且它的数字位置经过任意对换后仍为素数,则称为绝对素数。如13,试求所有两位绝对素数的个数。

SET TALK OFF

CLEA

S=0

FOR I=10 TO 99

J=__________

F1=1

FOR K=2 TO I-1

IF MOD(I,K)=0

F1=0

ENDIF

ENDFOR

F2=1

FOR K=2 TO J-1

相关主题
文本预览