| 网站首页 | 技术文章 | 下载频道 | 博客 | 编程论坛 |
 
| 技术教程首页 | 开发语言 | WEB开发 | .NET技术 | 数据库 | 操作系统 | 网页制作 |
 
 
您现在的位置: 编程中国 >> 技术教程 >> 数据库 >> VFP >> VFP技术资料 >> 正文
  ►  超级素数问题一
超级素数问题一
作者:Tiger5392    阅读人次:……    文章来源:本站原创    发布时间:2006/10/14    网友评论()条
 

原文及讨论: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

 

 
文章录入:静夜思    责任编辑:静夜思 
  • 上一篇文章:

  • 下一篇文章:

  •  
    相关文章
    原创地带
    24小时热门帖子