VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

[原創]判斷質數之函數

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
朱育興



註冊時間: 2003-08-25
文章: 661
來自: 台中市大里區

第 1 樓

發表發表於: 星期日 十二月 21, 2003 11:19 am    文章主題: [原創]判斷質數之函數 引言回覆

* 為求排版美觀,空白為全形空白,若要測試請將全形空白改為半形空白

* -------------------------------------------------------
* Example 1:找出 100 以內的所有質數
M_nInputNum = 100 && 找出 N 以內的所有質數
M_nLength4InputNum = LEN(LTRIM(STR(M_nInputNum)))
M_nRCount = 0
FOR M1_nSUB_A = 1 TO M_nInputNum
 WAIT WIND "計算中..."+LTRIM(STR(M1_nSUB_A))+"/"+LTRIM(STR(M_nInputNum)) NOWAIT
 IF F_Prime(M1_nSUB_A)
  M_nRCount = M_nRCount + 1
  IF M_nRCount != 1
   ?? ","
  ENDIF
  ?? LTRIM(STR(M1_nSUB_A))
 ENDIF
ENDFOR
WAIT CLEAR
RETURN
* -------------------------------------------------------

FUNCTION F_Prime
* -------------------------------------------------- *
* 說明:
* 判斷該正整數是否為質數
* 2003.12.25 朱育興 YSC E-MAIL: y5096@ms23.hinet.net
* -------------------------------------------------- *
* Input:
*  Li_nInputNum N 正整數,代表要判斷的數;
* Output:
*  Lo_lPrime   L 1.是否為質數。
*          2.若 Li_nInputNum 不為正整數,
*           傳回值 = .F.。
* -------------------------------------------------- *
* Example:
*  ? F_Prime(1) && --> .F.
*  ? F_Prime(2) && --> .T.
*  ? F_Prime(3) && --> .T.
*  ? F_Prime(9) && --> .F.
* -------------------------------------------------- *
PARAMETERS Li_nInputNum
LOCAL W1_nSqrtNum,W1_nSUB_A
Lo_lPrime = .T.
DO CASE
CASE PCOUNT() = 0
   Lo_lPrime = .F.
CASE TYPE("Li_nInputNum") != "N"
   Lo_lPrime = .F.
CASE Li_nInputNum <= 1
   Lo_lPrime = .F.
CASE MOD(Li_nInputNum,INT(Li_nInputNum)) != 0
   Lo_lPrime = .F.
CASE MOD(Li_nInputNum,2) = 0 AND Li_nInputNum != 2
   Lo_lPrime = .F.
OTHERWISE
   W1_nSqrtNum = INT(SQRT(Li_nInputNum))
   FOR W1_nSUB_A = 3 TO W1_nSqrtNum STEP 2
    IF MOD(Li_nInputNum,W1_nSUB_A) = 0
     Lo_lPrime = .F.
     EXIT
    ENDIF
   ENDFOR
ENDCASE
RETURN Lo_lPrime
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作