程序设计题选
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