版块导航
正在加载中...
客户端APP下载
论文辅导
调剂小程序
登录
注册
帖子
帖子
用户
本版
应《网络安全法》要求,自2017年10月1日起,未进行实名认证将不得使用互联网跟帖服务。为保障您的帐号能够正常使用,请尽快对帐号进行手机号验证,感谢您的理解与支持!
24小时热门版块排行榜
小木虫论坛-学术科研互动平台
»
计算模拟区
»
程序语言
»
其它
»
Euler 工程 第十题:计算小于2百万的所有质数的和
5
1/1
返回列表
查看: 1642 | 回复: 6
只看楼主
@他人
存档
新回复提醒
(忽略)
收藏
在APP中查看
本帖产生 3 个 程序强帖 ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖
holmescn
金虫
(正式写手)
程序强帖: 37
应助: 1
(幼儿园)
金币: 1918.8
散金: 275
红花: 1
帖子: 699
在线: 102.6小时
虫号: 913482
注册: 2009-11-26
性别: GG
专业: 凝聚态物性 II :电子结构
[交流]
Euler 工程 第十题:计算小于2百万的所有质数的和
已有3人参与
The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17.
Find the sum of all the primes below two million.
小于10的所有质数的和为:2+3+5+7 = 17
那么小于2百万的所有质数的和是多少?
PS:最近的关于质数的问题还真是多啊,哈哈。
PS2:到第10题了,这个题的解出率已经是第一题的一半还不到了。
回复此楼
» 猜你喜欢
265求调剂
已经有4人回复
085700资源与环境308求调剂
已经有6人回复
一志愿吉林大学材料学硕321求调剂
已经有12人回复
286分人工智能专业请求调剂愿意跨考!
已经有3人回复
329求调剂
已经有5人回复
申请回稿延期一个月,编辑同意了。但系统上的时间没变,给编辑又写邮件了,没回复
已经有4人回复
材料学硕318求调剂
已经有5人回复
一志愿中国海洋大学,生物学,301分,求调剂
已经有6人回复
081700化工学硕调剂
已经有3人回复
一志愿苏州大学材料求调剂,总分315(英一)
已经有3人回复
高级回复
» 本主题相关价值贴推荐,对您同样有帮助:
Euler 工程 第四十四题
已经有4人回复
Euler 工程 第四十二题: 三角词
已经有4人回复
Euler 工程 第四十一题
已经有5人回复
Euler 工程 第三十八题
已经有9人回复
Euler 工程 第三十七题
已经有6人回复
Euler 工程 第三十六题:
已经有18人回复
Euler 工程 第三十五题:循环质数
已经有16人回复
Euler 工程 第三十二题:pandigital 数
已经有3人回复
Euler 工程 第三十一题: 换零钱
已经有10人回复
Euler 工程 第三十题
已经有12人回复
Euler 工程 第廿九题:有多少不同的项?
已经有30人回复
Euler 工程 第廿八题:旋转矩阵对角线的和
已经有6人回复
Euler 工程 第廿七题:系数的积
已经有15人回复
Euler 工程 第廿六题:最长的循环节
已经有9人回复
Euler 工程 第廿五题:Fibonacci 数列第一个包含1000个数字的项
已经有3人回复
Euler 工程 第廿四题:全排列的第100万项
已经有19人回复
Euler 工程 第廿三题:
已经有16人回复
Euler 工程 第廿二题: 姓的总分
已经有13人回复
Euler 工程 第廿题:100! 的各项和
已经有5人回复
Euler 工程 第十九题:每月第一天是周日的天数
已经有4人回复
Euler 工程 第十八题:三角阵上最大的和
已经有12人回复
Euler 工程第十六题:2的1000次方的各项和
已经有14人回复
Euler 工程 第14题:找最长的数列
已经有9人回复
Euler 工程 第十一题:相邻元素乘积最大
已经有10人回复
Euler 工程 第三题:寻找600851475143的最大质因子
已经有18人回复
1楼
2011-05-15 08:14:34
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
libralibra
至尊木虫
(著名写手)
骠骑将军
程序强帖: 40
应助: 817
(博后)
金币: 12914.1
红花: 64
帖子: 2238
在线: 287.3小时
虫号: 696514
注册: 2009-02-05
专业: 计算机软件
★ ★ ★ ★
小木虫(金币
+0.5
):给个红包,谢谢回帖
余泽成(金币+3): 谢谢参与交流! 2011-05-15 19:21:33
还是老规矩,先来个偷懒的解法
CODE:
function result = euler10()
tic;
result = sum(primes(2000000));
toc;
end
结果+运行时间
CODE:
% Elapsed time is 0.087248 seconds.
% ans =
% 142913828922
赞
一下
(2人)
回复此楼
高级回复
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
3楼
2011-05-15 14:56:17
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
查看全部 7 个回答
huycwork
金虫
(著名写手)
程序强帖: 22
应助: 0
(幼儿园)
金币: 953
散金: 663
红花: 8
沙发: 13
帖子: 1080
在线: 264.1小时
虫号: 1257243
注册: 2011-04-06
专业: 金融学
★ ★
小木虫(金币
+0.5
):给个红包,谢谢回帖
余泽成(金币+1): 谢谢参与讨论! 2011-05-15 19:21:06
只是这些质数问题,侧重点各有不同,第三题要求找出最大质数,第七题要求解出第10001个质数,而这一题根本不要求测试出所有质数,只是求和而已,解法应该也有特殊之处。
赞
一下
(2人)
回复此楼
漩涡的中心有一块空地,空空的。
2楼
2011-05-15 08:44:32
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
huycwork
金虫
(著名写手)
程序强帖: 22
应助: 0
(幼儿园)
金币: 953
散金: 663
红花: 8
沙发: 13
帖子: 1080
在线: 264.1小时
虫号: 1257243
注册: 2011-04-06
专业: 金融学
★ ★ ★ ★
小木虫(金币
+0.5
):给个红包,谢谢回帖
余泽成(金币+3, 程序强帖+1): 谢谢参与交流! 2011-05-15 19:21:47
我先前说的素数算法的实现,偶数部分没有优化,效率看起来还算不错~第七题都没人管了,就发这吧:
CODE:
#include
#include
using namespace std;
enum {
BUFSZ = 10000,//这个限制产生性能瓶颈,设置越大,性能就越好
NPRI = 10001 //这个数据就需要估计了,不想估计,就直接vector吧:)
};
bool buf[BUFSZ];
size_t primer[NPRI];
size_t eular7(size_t nprimer = 10001){
size_t offset = 0, *prip, *cprip;
int top;//记录素数数
int falc;//排除的数
bool *bufp;
primer[0] = 2;//负责偶数部分
primer[1] = 3;
primer[2] = 5;
top = 3;
//如果从1开始会把所有的数都false了,offset必须比1要大
offset += 5;
while(1){
for(size_t i = 0; i < BUFSZ; ++i)
buf[i] = true;
falc = 0;
prip = primer;
cprip = primer + top;
bufp = buf;
NEWPRI: //每当有新的素数就跳回来
//检查每个已知的素数,这部分可能有bug,测试的时候感觉有点问题
while(prip - primer < top){
size_t mod = offset%(*prip);
if(mod == 0){
buf[0] = false;
++falc;
}
for(size_t i = *prip - mod; i < BUFSZ; i+=*prip){
if(buf[i])
++falc;
buf[i] = false;
}
++prip;//这个指针保证,不会重复遍历素数表
}
//添加未知的素数,每次只添加一个
for(int i = bufp - buf; i < BUFSZ; ++i){
if(buf[i]){
primer[top++] = offset + i;
if(top == nprimer)
goto DONE;
bufp = buf+i;//这个指针保证,不会重复检查缓冲数表
if(falc + prip - cprip < BUFSZ)
goto NEWPRI;
}
}
offset += BUFSZ;
}
DONE:
return primer[nprimer-1];
}
int main(){
time_t t1, t2;
t1 = time(0);
size_t res = eular7();
t2 = time(0);
cout<<"result:"<
cout<<"cost:"<
return 0;
}
如果要适应这题,修改终止条件即可。
赞
一下
(2人)
回复此楼
漩涡的中心有一块空地,空空的。
4楼
2011-05-15 15:45:50
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
holmescn
金虫
(正式写手)
程序强帖: 37
应助: 1
(幼儿园)
金币: 1918.8
散金: 275
红花: 1
帖子: 699
在线: 102.6小时
虫号: 913482
注册: 2009-11-26
性别: GG
专业: 凝聚态物性 II :电子结构
★ ★
余泽成(金币+2, 程序强帖+1): 谢谢参与交流! 2011-05-18 17:05:42
看了huycwork的代码,感觉不太好,用了goto的话,就bad smell了。我写了一个没有goto的版本不过,可能有地方会重叠,造成速度慢。
CODE:
#include
#include
#include
#define PRIMESZ 100002
#define BUFSZ 10000
int nthPrime(int nth) {
// 总共的质数集
int primes[PRIMESZ];
// 每次过滤用的buffer
int buf[BUFSZ];
// 已知的质数个数
int amountOfPrimes;
// 记录buffer的第一个数
// 最后一个数以及下一个
// 是当前质数的倍数的数
int next, first, last;
int i, j;
// 先给两个质数
primes[0] = 2;
primes[1] = 3;
amountOfPrimes = 2;
last = 3;
while (amountOfPrimes < nth) {
// 填充buffer, 不要偶数
// 这里从最大质数开始,选BUFSZ个数
// 可能有些数会被重复查找
// 但可以防止漏掉数
for(i = 0; i < BUFSZ; i++) {
buf[i] = primes[amountOfPrimes - 1] + i*2;
}
// 保存第一个数和最后一个数,因为可能被修改
first = buf[0];
last = buf[BUFSZ-1];
for(i = 1; i < amountOfPrimes; i++) {
// 下一个大于first但是primes[i]的倍数的数
next = ceil(first * 1.0 / primes[i]);
// 防止得到偶数
if (next % 2 == 0) next += 1;
// 过滤掉primes[i]的倍数
// 这里我想了很久......
// 主要是脑子不够用
for(j = next * primes[i]; j <= last; j += primes[i]*2) {
buf[(j - first)/2] = 0;
}
}
// 把过滤完了的质数加到primes里
// 不能加得太多,因为可能有些质数还没有在primes里
// 这些质数的倍数可能会被加进来
for(j = 0; j < (BUFSZ < amountOfPrimes?BUFSZ:amountOfPrimes); j++) {
if(buf[j]) {
primes[amountOfPrimes++] = buf[j];
}
// 够数了就别再加了
if(amountOfPrimes > PRIMESZ)
break;
}
}
return primes[nth-1];
}
int main(int argc, char** argv){
time_t t;
t = time(0);
printf("nthPrimes = %d\n", nthPrime(100001));
printf("%d\n", time(0)-t);
return 0;
}
赞
一下
(1人)
回复此楼
5楼
2011-05-18 14:35:44
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
查看全部 7 个回答
如果回帖内容含有宣传信息,请如实选中。否则帐号将被全论坛禁言
普通表情
龙
兔
虎
猫
高级回复
(可上传附件)
百度网盘
|
360云盘
|
千易网盘
|
华为网盘
在新窗口页面中打开自己喜欢的网盘网站,将文件上传后,然后将下载链接复制到帖子内容中就可以了。
最具人气热帖推荐
[查看全部]
作者
回/看
最后发表
[
考研
]
一志愿武汉理工材料工程专硕调剂
+5
Doleres
2026-03-19
5/250
2026-03-19 20:14
by
制度的
[
考研
]
0856调剂,是学校就去
+6
sllhht
2026-03-19
7/350
2026-03-19 19:50
by
制度的
[
考研
]
085600材料与化工调剂 324分
+10
llllkkkhh
2026-03-18
12/600
2026-03-19 14:33
by
llllkkkhh
[
考研
]
286求调剂
+6
lemonzzn
2026-03-16
10/500
2026-03-19 14:31
by
lemonzzn
[
考研
]
一志愿福大288有机化学,求调剂
+3
小木虫200408204
2026-03-18
3/150
2026-03-19 13:31
by
houyaoxu
[
考研
]
材料080500调剂求收留
+4
一颗meteor
2026-03-13
4/200
2026-03-19 10:32
by
30660438
[
考研
]
收复试调剂生
+4
雨后秋荷
2026-03-18
4/200
2026-03-18 14:16
by
elevennnne
[
考研
]
280求调剂
+6
咕噜晓晓
2026-03-18
7/350
2026-03-18 11:25
by
无际的草原
[
考研
]
265求调剂
+3
梁梁校校
2026-03-17
3/150
2026-03-18 09:12
by
zhukairuo
[
考研
]
268求调剂
+6
简单点0
2026-03-17
6/300
2026-03-18 09:04
by
无际的草原
[
基金申请
]
被我言中:新模板不强调格式了,假专家开始管格式了
+4
beefly
2026-03-14
4/200
2026-03-17 22:04
by
黄鸟于飞Chao
[
论文投稿
]
有没有大佬发小论文能带我个二作
+3
增锐漏人
2026-03-17
4/200
2026-03-17 09:26
by
xs74101122
[
考研
]
283求调剂
+3
听风就是雨;
2026-03-16
3/150
2026-03-17 07:41
by
热情沙漠
[
考研
]
274求调剂
+5
时间点
2026-03-13
5/250
2026-03-17 07:34
by
热情沙漠
[
考研
]
304求调剂
+5
素年祭语
2026-03-15
5/250
2026-03-16 17:00
by
我的船我的海
[
考研
]
中科院材料273求调剂
+4
yzydy
2026-03-15
4/200
2026-03-16 15:59
by
Gaodh_82
[
考研
]
0856求调剂
+3
刘梦微
2026-03-15
3/150
2026-03-16 10:00
by
houyaoxu
[
考研
]
本科南京大学一志愿川大药学327
+3
麦田耕者
2026-03-14
3/150
2026-03-14 20:04
by
外星文明
[
考研
]
297求调剂
+4
学海漂泊
2026-03-13
4/200
2026-03-14 11:51
by
热情沙漠
[
考研
]
311求调剂
+3
冬十三
2026-03-13
3/150
2026-03-13 20:41
by
JourneyLucky
信息提示
关闭
请填处理意见
关闭
确定