| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 10538 人关注过本帖
标题:用删除法编写一个制作素数表的vfp程序
取消只看楼主 加入收藏
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:865
专家分:683
注 册: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
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:865
专家分:683
注 册:2016-6-29
收藏
得分:0 
回复 82楼 laowan001
希望得到共享。把用数组的方法代替主循环体(不在用数据a和数据b两个表)。

素数问题的解决是我学习编程永恒的动力。
2021-09-18 09:12
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:865
专家分:683
注 册: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: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:865
专家分:683
注 册:2016-6-29
收藏
得分:0 
回复 98楼 吹水佬
谢谢!吹水佬版主。试运行了一下,由于突然停电,只保存一个文件,打开看了一下,是正整数(素数)。

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

素数问题的解决是我学习编程永恒的动力。
2021-09-21 09:34
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:865
专家分:683
注 册:2016-6-29
收藏
得分:0 
回复 98楼 吹水佬
cDefPath = ADDBS(JUSTPATH(SYS(16)))
SET DEFAULT TO (cDefPath)
DECLARE LONG CreatePrime IN Prime LONG,LONG,STRING@
t = SECONDS()
CreatePrime(4280000001,4310000001,cDefPath+"Prime143.txt")
? SECONDS()-t
t = SECONDS()
CreatePrime(4310000001,4340000001,cDefPath+"Prime144.txt")
? SECONDS()-t
"Prime142.txt "时还没有出错,因为它的最大值是4280000000,而整数限制2147483647*2=4294967294,还小于它。
而到"Prime143.txt "时就出错了,运行时间0.008秒,文件为空白,即没有存数据;
"Prime144.txt "时运行时间123.583秒,文件存储的数据都是8位数(千万级别)。

只能算到最大素数0xFFFFFFEF?它是不是整数溢出(即最大整数值),我对它不太了解,我以为是9999999999,十位数最大值。

素数问题的解决是我学习编程永恒的动力。
2021-09-21 19:41
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:865
专家分:683
注 册:2016-6-29
收藏
得分:0 
回复 102楼 吹水佬
明白了:2^32=4294967296

素数问题的解决是我学习编程永恒的动力。
2021-09-21 21:43
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:865
专家分:683
注 册:2016-6-29
收藏
得分:0 
回复 82楼 laowan001
laowan001先生提供的方法是我需要的方法,他用了数据源及素数表,这样可以把同类问题一块解决。先生有空时能不能用数组的方法,方式代替内循环中的处理数据,那种算法发上来,我好学习学习(虽然,您已经说了运算速度也差不多)。

素数问题的解决是我学习编程永恒的动力。
2021-09-29 06:52
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:865
专家分:683
注 册:2016-6-29
收藏
得分:0 
回复 102楼 吹水佬
吹水佬版主的算法用时最少,速度最快。计算范围是2*2^32.再大,就溢出了。(只好把制作100亿内的素数表暂时搁置,现在已有40亿内的素数表了,每10亿划分一个表,有四个素数表)。再次感谢吹水佬版主的付出,和辛勤劳作,给我提供了优质的制作素数程序。我以前制作10亿的素数表,哩哩啦啦用了20天的时间。所以,还得沉下心,努力向大家学习。

素数问题的解决是我学习编程永恒的动力。
2021-09-29 07:01
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:865
专家分:683
注 册:2016-6-29
收藏
得分:0 
回复 106楼 wengjl
昨天下载,大概看了一下,还没有应用。祝您,国庆节快乐!

素数问题的解决是我学习编程永恒的动力。
2021-09-30 08:56
快速回复:用删除法编写一个制作素数表的vfp程序
数据加载中...
 
   



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

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