作者在 2015-04-11 02:06:40 发布以下内容
CLEAR
DO WHILE .T.
INPUT "请输入11-1000000之间的任意数:" TO N
IF N>10^6 OR N<11
MESSAGEBOX("数字超出范围,请重新输入!")
LOOP
ELSE
EXIT
ENDIF
ENDDO
S=2+3+5+7
C=4
FOR LNI=11 TO N
X=LNI
Y=0
DO WHILE X!=0
Y=X%10+Y*10
X=INT(X/10)
ENDDO
IF Y=LNI AND INLIST(LNI%10,1,3,7,9) AND ISPRIME(Y)=.T.
C=C+1
* ?C,Y && 显示素数
S=S+Y
ENDIF
ENDFOR
?"对称素数之和为:",S,"对称素数个数为:",C
*-----------------------------------
* 素数判断函数
FUNCTION ISPRIME(N)
LOCAL I
IF N <= 3
RETURN N > 1
ENDIF
IF (N % 2 == 0) OR (N % 3 == 0)
RETURN .F.
ENDIF
I = 5
DO WHILE I * I <= N
IF (N % I == 0) OR (N % (I + 2) == 0)
RETURN .F.
ENDIF
I = I + 6
ENDDO
RETURN .T.
ENDFUNC