求质数、合数
6个数据,求质数、合数的个数,以及个数比,分别显示在后三列中比如:6个数据为3 12 33 42 45 88
结果: 列1 列2 列3 列4 列5 列6 列7 列8 列9
3 12 33 42 45 88 1 5 1:5
求命令,谢谢!
程序代码: * 测试数据
n = 100
LOCAL a[6]
CREATE CURSOR tt (f1 I, f2 I, f3 I, f4 I, f5 I, f6 I, 质数个数 I, 合数个数 I, 比数 C(10))
RAND(-1)
FOR i = 1 TO 100
FOR j = 1 TO 6
a[j] = INT((n-1)*RAND()+1)
ENDFOR
INSERT INTO tt VALUES (a[1], a[2], a[3], a[4], a[5], a[6], 0, 0, "")
ENDFOR
* 统计数据
REPLACE 比数 WITH 统计() ALL
GO TOP
BROWSE
RETURN
FUNCTION 统计()
LOCAL i, n质数个数, n合数个数, fn
n质数个数 = 0
n合数个数 = 0
FOR i = 1 TO 6
fn = EVALUATE("f"+TRANSFORM(i))
IF isPrimer(fn)
n质数个数 = n质数个数 + 1
ELSE
n合数个数 = n合数个数 + 1
ENDIF
ENDFOR
REPLACE 质数个数 WITH n质数个数, 合数个数 WITH n合数个数
RETURN " "+TRANSFORM(n质数个数)+":"+TRANSFORM(n合数个数)
ENDFUNC
FUNCTION isPrimer(n)
LOCAL i
FOR i = 2 TO SQRT(n)
IF n % i == 0
RETURN .F.
ENDIF
ENDFOR
RETURN .T.
ENDFUNC