标题:用删除法编写一个制作素数表的vfp程序
只看楼主
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
用87楼的,1亿个,用55秒。。。
生成1个54.2 MB的文件
2021-09-17 09:07
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
回复 87楼 吹水佬
cDefPath = ADDBS(JUSTPATH(SYS(16)))
SET DEFAULT TO (cDefPath)
DECLARE LONG CreatePrime IN Prime LONG,LONG,STRING@
t = SECONDS()
CreatePrime(1, 10000000, cDefPath+"Prime1.txt")
? SECONDS()-t  && 7.953s 文本文件prime1 5.61MB
t = SECONDS()
CreatePrime(10000001, 40000000, cDefPath+"Prime2.txt")
? SECONDS()-t  && 50.209s  文本文件prime2  16.8MB
这次在电脑上运行时间与吹水佬版主的相当,再次谢谢吹水佬版主!

素数问题的解决是我学习编程永恒的动力。
2021-09-17 19:16
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
回复 87楼 吹水佬
cDefPath = ADDBS(JUSTPATH(SYS(16)))
SET DEFAULT TO (cDefPath)
DECLARE LONG CreatePrime IN Prime LONG,LONG,STRING@
t = SECONDS()
CreatePrime(40000001, 70000000, cDefPath+"Prime3.txt")
? SECONDS()-t  && 72.825s Prime3 16.0MB
t = SECONDS()
CreatePrime(70000001, 100000000, cDefPath+"Prime4.txt")
? SECONDS()-t  && 89.604s Prime4 15.6MB
分段计算了两部分,用时都较少。
吹水佬版主

素数问题的解决是我学习编程永恒的动力。
2021-09-17 19:42
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
回复 82楼 laowan001
希望得到共享。把用数组的方法代替主循环体(不在用数据a和数据b两个表)。

素数问题的解决是我学习编程永恒的动力。
2021-09-18 09:12
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:108
帖 子:2175
专家分:3785
注 册:2007-4-27
得分:0 
谢谢分享!

[此贴子已经被作者于2021-9-18 13:30编辑过]


只求每天有一丁点儿的进步就可以了
2021-09-18 13:18
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
回复 87楼 吹水佬
cDefPath = ADDBS(JUSTPATH(SYS(16)))
SET DEFAULT TO (cDefPath)
DECLARE LONG CreatePrime IN Prime LONG,LONG,STRING@
t = SECONDS()
CreatePrime(2000000001, 2040000000, cDefPath+"Prime68.txt")
? SECONDS()-t  && 72.825s Prime3 16.0MB
t = SECONDS()
CreatePrime(2040000001, 2070000000, cDefPath+"Prime69.txt")
? SECONDS()-t  && 89.604s Prime4 15.6MB
t = SECONDS()
CreatePrime(2070000001, 2100000000, cDefPath+"Prime70.txt")
? SECONDS()-t  && 72.825s Prime3 16.0MB
t = SECONDS()
CreatePrime(2100000001, 2130000000, cDefPath+"Prime71.txt")
? SECONDS()-t  && 89.604s Prime4 15.6MB
t = SECONDS()
CreatePrime(2130000001, 2160000000, cDefPath+"Prime72.txt")
? SECONDS()-t  && 72.825s Prime3 16.0MB
t = SECONDS()
CreatePrime(2160000001, 2190000000, cDefPath+"Prime73.txt")
? SECONDS()-t  && 89.604s Prime4 15.6MB
t = SECONDS()
CreatePrime(2190000001, 2220000000, cDefPath+"Prime74.txt")
? SECONDS()-t  && 72.825s Prime3 16.0MB
t = SECONDS()
CreatePrime(2220000001, 2250000000, cDefPath+"Prime75.txt")
? SECONDS()-t  && 89.604s Prime4 15.6MB
t = SECONDS()
CreatePrime(2250000001, 2280000000, cDefPath+"Prime76.txt")
? SECONDS()-t  && 72.825s Prime3 16.0MB
t = SECONDS()
CreatePrime(2280000001, 2310000000, cDefPath+"Prime77.txt")
? SECONDS()-t  && 89.604s Prime4 15.6MB
t = SECONDS()
CreatePrime(2310000001, 2340000000, cDefPath+"Prime78.txt")
? SECONDS()-t  && 89.604s Prime4 15.6MB
计算到"Prime72.txt"时出错,前多半部为正数,截止2147483647;随后变成了负数,-2147483637(紧接着它的绝对值变小),到后来的表的数值绝对值一直减小,大有往回返的程度。因为突然停电,不知何种原因造成,"Prime76.txt"已有,只有后两个没有运算完,没有存储。

[此贴子已经被作者于2021-9-19 18:11编辑过]


素数问题的解决是我学习编程永恒的动力。
2021-09-19 18:09
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 96楼 独木星空
VFP整数是有符号的
整数的最小值 -2,147,483,647
整数的最大值 2,147,483,647
我试改改那个DLL直接返回无符号,VFP就不用转换。
2021-09-19 20:21
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 97楼 吹水佬
输出无符号整数
prime.rar (12.73 KB)

只能算到最大素数0xFFFFFFEF
CreatePrime(0xFFFFFFE1, 0xFFFFFFFF, cDefPath+"Prime1.txt")
2021-09-19 22:04
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
回复 98楼 吹水佬
谢谢!吹水佬版主。试运行了一下,由于突然停电,只保存一个文件,打开看了一下,是正整数(素数)。

素数问题的解决是我学习编程永恒的动力。
2021-09-20 10:48
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
回复 98楼 吹水佬
在中秋佳节之日,再次谢谢吹版主的辛勤劳作!

素数问题的解决是我学习编程永恒的动力。
2021-09-21 09:34



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-506838-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.785450 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved