N1=N T=MOD(M,N) DO WHILE T<>0 M=N N=T
T=MOD(M,N)
ENDDO
?\ 最大公约数为\
?\ 最小公倍数为\
17. 输出100 至 200之间所有能被5 或 7整除的整数,并输出它们的和。 SUM=0
FOR I=100 TO 200
IF MOD(I,5)=0 OR MOD(I,7)=0 SUM=SUM+I ?I ENDIF ENDFOR
?“SUM=”,SUM
18. 求 1*2+3*4+5*6+??+21*22 SUM=0
FOR I=1 TO 21 STEP 2
SUM=SUM+I*(I+1) ENDFOR
?\19. 求 N的阶乘。(N的值由键盘输入,应小于20 ) INPUT TO N P=1
FOR I=1 TO N
P=P*I ENDFOR
?N,”!=”,P
20. 打印ASCII中所有可打印字符(一行打印10个字符,字符间留三个空) CLEAR N=0
FOR I=33 TO 126
IF MOD(N,10)=0
?SPACE(3)+CHR(I) ELSE
??SPACE(3)+CHR(I) ENDIF N=N+1 ENDFOR
21. 一个数如果恰好等于它的因子之和,这个数就称为“完数”,如:6=1+2+3,故6是完数。
编程输出1000以内的所有完数。
FOR I=2 TO 1000 S=0 FOR J=1 TO I-1 IF MOD(I,J)=0 S=S+J ENDIF ENDFOR
IF S=I
?I,\是完数\
ENDIF ENDFOR
22. 输入一个字符串,判断其中有多少个大写字母、小写字母、数字字符、空格字符以及其他
特殊字符?
CLEAR
STORE 0 TO UPPER,LOWER,DIGIT,SPACE,SPECIAL INPUT “输入一个字符串” TO ST L=LEN(ST) FOR I=1 TO L CH=SUBST(ST,I,1)
DO CASE
CASE ASC(CH)>=65 AND ASC(CH)<=90
UPPER=UPPER+1
CASE ASC(CH)>=48 AND ASC(CH)<=57 DIGIT=DIGIT+1
CASE ASC(CH)>=97 AND ASC(CH)<=122 LOWER=LOWER+1 CASE ASC(CH) =32 SPACE=SPACE+1 OTHERWISE
SPECIAL=SPECIAL+1
ENDCASE ENDFOR
? “字符串中大写字母的个数是”, UPPER ? “字符串中小写字母的个数是”, LOWER ? “字符串中数字字符的个数是”, DIGIT ? “字符串中空格字符的个数是”, SPACE ? “字符串中其他字符的个数是”,SPECIAL 23. 求如下级数前N项之和(X和N的值由键盘输入)
234n1?x?S=1
x2?x3?x4????????xn
INPUT TO X INPUT TO N
FOR I=1 TO N-1 S=S+X^I/I
ENDFOR
?”SUM=”,S
24. 输入一个大于2的整数,判断是否为素数? INPUT “请输入一个大于2的整数” TO J M=J-1
FLAG=.T.
FOR I=2 TO M IF MOD(J,I)=0
FLAG=.F. EXIT ENDIF ENDFOR IF FLAG
? J,”是素数” ELSE
?J,”不是素数”
ENDIF
25. 输出3到100之间所有的素数,并求其总和。 SUM=0
FOR J=3 TO 100 STEP 2
M=INT(SQRT(J))
FLAG=.T.
FOR I=2 TO M
IF MOD(J,I)=0
FLAG=.F. EXIT ENDIF ENDFOR IF FLAG
? J
SUM=SUM+J ENDIF ENDFOR
?”素数之和为”,SUM
26. 输入一个字符串,按其倒序输出。
INPUT \L=LEN(ST)
FOR I=L TO 1 STEP -1
??SUBSTR(ST,I,1) ENDFOR ?
RETURN
27. 从键盘输入一个二进制数,将其转换成等值的十进制数。
(1001001)B=1*2+1*2+1*2=64+8+1=73
SET TALK OFF CLEAR S=0
ACCEPT \L=LEN(N) FOR I=1 TO L
S=S+VAL(SUBSTR(N,I,1))*2**(L-I) ENDFOR ?\SET TALK ON CANCEL
630