原文及讨论:http://hi.bccn.net/space-67595-do-blog-id-1340.html *** ***  FUNCTION SP V1.00 (C)Copyright By Tiger5392 *** ***    一个素数,依次从个位数开始去掉一位,两位,。。。所得的各数仍然是素数,称为超级素数。 ***本程序就是用来判断一个数是不是超级素数。 *** ***    用法:?SP(nExpr) ***    参数:nExpr为数值型数据,它为大于1的整数。 ***    返回:若为超级素数则返回逻辑真(.T.);否则返回逻辑假(.F.)。 *** PARAMETERS nNum PRIVATE nNum,nNum1,cNum,nCnt1,nCnt2,lOk SET TALK OFF IF TYPE([nNum])!=CHR(78)   RETURN [没有参数或参数不为数值] ENDIF IF INT(nNum)!=nNum OR nNum<2   RETURN [参数应为大于1的正整数] ENDIF cNum=ALLTRIM(STR(nNum)) lOk=.T. FOR nCnt1=0 TO LEN(cNum)-1  nNum1=VAL(SUBSTR(cNum,1,LEN(cNum)-nCnt1))  IF nNum1=1   lOk=.F.   EXIT  ENDIF  FOR nCnt2=2 TO SQRT(nNum1)   IF MOD(nNum1,nCnt2)=0    lOk=.F.    EXIT   ENDIF  ENDFOR ENDFOR RETURN lOK ***EOF():2006-08-25 By Tiger5392                      
 
 |