|

楼主 |
发表于 2020-10-4 06:58
|
显示全部楼层
SELECT 1
USE D:\VFP温习\素数式至17表.DBF ALIAS 素式表
kssj=SECONDS()
S=1
For i=1 to 170169
PUBLIC N
N=i
@ 5,12 say N
IF MOD(N,2)=0 &&判断循环值是否被2整除
S=S+2 &&符合条件执行的方案
ELSE
S=S+4 &&不符合条件执行的方案
ENDIF
IF MOD(S,5)=0 OR MOD(S,7)=0 OR MOD(S,11)=0 OR MOD(S,13)=0 OR MOD(S,17)=0&& 如果S被其中素数之一整除就跳过,什么也不做
ELSE &&否则执行第二步方案
SELECT 1 &&打开盛放素数式的表
APPEND BLANK &&增加一条空记录
REPLACE 素数式 WITH S &&将N值付给素数式
endif
endfor
=MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
与上楼相仿,是直接从素数式至3到素数式至17的程序,运行结果正确,需要把1插入到第一条记录之前。
运行时间0分33.51秒,比起用excel要快而省事。 |
|