求兩個正整數(shù)的公約束和最小公倍數(shù)

字號:

程序代碼:
    ****
    **** GBSGYS V1.00 (C)Copyright 2006-2006 By Tiger5392
    ****
    **** 功能
    **** 計算兩個正整數(shù)的公約數(shù)及最小公倍數(shù)
    ****
    **** 用法
    **** ?GYSGBS(nExpr1,nExpr2,nExpr3)
    ****
    **** 參數(shù)
    **** nExpr1 第一個正整數(shù)
    **** nExpr2 第二個正整數(shù)
    **** nExpr3 如為0則計算公約數(shù);如為1則計算最小公倍數(shù)
    ****
    **** 返回
    **** 最小公倍數(shù)或公約數(shù)
    ****
    PARAMETERS nNum1,nNum2,nControl
    PRIVATE nNum1,nNum2,nControl,nCount
    SET TALK OFF
    IF TYPE("nNum1")#CHR(78) OR INT(nNum1)#nNum1 OR nNum1<=0
     RETURN "****"
    ENDIF
    IF TYPE("nNum2")#CHR(78) OR INT(nNum2)#nNum2 OR nNum2<=0
     RETURN "****"
    ENDIF
    IF TYPE("nControl")#CHR(78) OR nControl#0 AND nControl#1
     RETURN "****"
    ENDIF
    IF nControl=1
     FOR nCount=MAX(nNum1,nNum2) TO nNum1*nNum2
     IF MOD(nCount,nNum1)=0 AND MOD(nCount,nNum2)=0
     EXIT
     ENDIF
     ENDFOR
    ELSE
     FOR nCount=MIN(nNum1,nNum2) TO 1 STEP -1
     IF MOD(nNum1,nCount)=0 AND MOD(nNum2,nCount)=0
     EXIT
     ENDIF
     ENDFOR
    ENDIF
    RETURN nCount
    **** EOF: GYSGBS (C)Copyright By Tiger5392