24小时热门版块排行榜    

查看: 1519  |  回复: 4
本帖产生 2 个 程序强帖 ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

wangww2011

木虫 (著名写手)

[交流] Project Euler 47 欧拉工程 47 题 已有3人参与

前两个连续拥有两个素数因子的数是:
14 = 2 * 7
15 = 3 * 5

前三个连续拥有三个素数因子的数是:
644 = 2^2 * 7 * 23
645 = 3 * 5 * 43
646 = 2 * 17 * 19.

请找到前四个连续拥有四个素数因子的数,这四个数中的第一个数是多少?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chyanog

金虫 (小有名气)

★
小木虫: 金币+0.5, 给个红包,谢谢回帖
Mathematica做Project euler优势更大,
楼上的matlab代码运行了40s,mathematica版的1.4s
Project Euler 47 欧拉工程 47 题
CODE:
(*method1*)
Catch@Do[
   If[
    Length@FactorInteger[i] == 4 &&
     Length@FactorInteger[i + 1] == 4 &&
     Length@FactorInteger[i + 2] == 4 &&
     Length@FactorInteger[i + 3] == 4, Throw@i],
   {i, 10^6}] // AbsoluteTiming

(*method2*)
i = 1;
NestWhile[Length@FactorInteger[i++] != 4 &, , Or, 4]; // AbsoluteTiming
i - 4

5楼2013-09-15 18:32:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 5 个回答

tieer

木虫 (正式写手)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
余泽成(金币+3, 程序强帖+1): 欢迎参与讨论! 2011-09-07 22:03:57
还是没人上答案啊,那就上我的超慢版吧,1241s,
CODE:
# -*- coding: cp936 -*-
#Project Euler 47 欧拉工程 47 题
#前四个连续的拥有四个素数因子的数,这四个数中的第一个数是多少?
from math import sqrt
def isprime(p):                    #验证素数,素数则返回素数本身,合数则返回False
    k=1
    for i in xrange(2,int(sqrt(p))+1):
        if p%i==0:
            k=0
            return False
            break
    if k:
        return p
def istheresult(n,m=0):
    actor=[i for i in xrange(3,n+1,2) if n%i==0]   #奇约数列表
    if n%2==0:
        actor.append(2)
    primelist=[i for i in actor if isprime(i)]     #约数中的素数
    if len(primelist)==4:
        if m:print primelist
        return True     
number=647
while True:
    if istheresult(number)and istheresult(number+1)and istheresult(number+2) and istheresult(number+3):
        print number,istheresult(number,1)
        print number+1,istheresult(number+1,1)
        print number+2,istheresult(number+2,1)
        print number+3,istheresult(number+3,1)
        break
    else:
        number+=1

答案:
134043 [3, 7, 13, 491]
134044 [23, 31, 47, 2]
134045 [5, 17, 19, 83]
134046 [3, 11, 677, 2]

[ Last edited by tieer on 2011-9-7 at 20:56 ]
思考,让这个世界更有趣。
2楼2011-09-07 20:30:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangww2011

木虫 (著名写手)

★ ★ ★
余泽成(金币+3, 程序强帖+1): 辛苦! 2011-09-07 22:04:18
我也贴出平庸版本吧
CODE:
644
134043

CODE:
#!/usr/bin/env python

from math import sqrt

def primeN(n):
    t=[n]
    while True:
        for i in range(2,int(sqrt(t[0])+1)):
            if t[0]%i==0:
                t.append(i)
                t[0]=t[0]/i
                break
        else:
            break
    return len(set(t))


def euler47(num):
    n=1
    while True:
        for i in range(num):
            if primeN(n+i)!=num:
                break
        else:
            break
        n+=1
    return n
        

if __name__ == "__main__":
    print euler47(3)
    print euler47(4)

还有一个经典解法为(看到的):
CODE:
n=200000
factors=[0]*n

for i in range(2,n):
    if factors[i] == 0 :
        for j in range(2*i,n,i):
            factors[j] += 1


for i in range(2,n):
    if factors[i:i+4]==4*[4]:
        print i

[ Last edited by wangww2011 on 2011-9-7 at 23:07 ]
3楼2011-09-07 21:44:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
jjdg(金币+2): 感谢参与 2011-09-08 10:06:50
matlab
CODE:
% ans =
%       134043
function result = euler47()
tic;
result = 644;
while 1
    result = result+1;
    if length(unique(factor(result)))==4 && ...
            length(unique(factor(result+1)))==4 && ...
            length(unique(factor(result+2)))==4 && ...
            length(unique(factor(result+3)))==4
        break;
    end
end
toc;
end

matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
4楼2011-09-08 01:09:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 龙 兔 虎 猫 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 ZYXdhzDAy9ZX 2026-09-28 3/150 2026-09-29 06:42 by ZvyPK8n6Nfki
[找工作] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 ZYXdhzDAy9ZX 2026-09-28 3/150 2026-09-29 06:34 by ZvyPK8n6Nfki
[找工作] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 ZYXdhzDAy9ZX 2026-09-28 3/150 2026-09-29 06:28 by ZvyPK8n6Nfki
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 ZYXdhzDAy9ZX 2026-09-28 3/150 2026-09-29 06:18 by ZvyPK8n6Nfki
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 tqUTOxClQUMF 2026-09-28 3/150 2026-09-28 23:46 by b8fCuTHqckEt
[考博] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +4 GDBe8tDZqE8z 2026-09-28 4/200 2026-09-28 23:19 by b8fCuTHqckEt
[考研] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 GDBe8tDZqE8z 2026-09-28 3/150 2026-09-28 23:12 by b8fCuTHqckEt
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 CfXuS1rDhLYN 2026-09-28 4/200 2026-09-28 22:55 by ez6fGg9abYaj
[公派出国] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +4 IDs3scOF0tjC 2026-09-28 4/200 2026-09-28 22:55 by ez6fGg9abYaj
[博后之家] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +4 IDs3scOF0tjC 2026-09-28 5/250 2026-09-28 22:45 by ez6fGg9abYaj
[有机交流] 同一个分子,一条来自文献,一条来自AI——不告诉你答案,你会选哪条? +3 tianxiaoxian 2026-09-28 6/300 2026-09-28 22:44 by tianxiaoxian
[找工作] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 IDs3scOF0tjC 2026-09-28 5/250 2026-09-28 22:32 by ez6fGg9abYaj
[公派出国] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 IDs3scOF0tjC 2026-09-28 4/200 2026-09-28 22:28 by ez6fGg9abYaj
[博后之家] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 IDs3scOF0tjC 2026-09-28 3/150 2026-09-28 22:21 by ez6fGg9abYaj
[考博] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 IDs3scOF0tjC 2026-09-28 6/300 2026-09-28 22:15 by ez6fGg9abYaj
[论文投稿] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 CfXuS1rDhLYN 2026-09-28 3/150 2026-09-28 19:08 by 9lS3ad5oOymn
[考研] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 IDs3scOF0tjC 2026-09-28 4/200 2026-09-28 18:51 by 9lS3ad5oOymn
[找工作] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +4 IDs3scOF0tjC 2026-09-28 4/200 2026-09-28 17:30 by ZYXdhzDAy9ZX
[教师之家] 某top大学教授说“能够在市场中兑现的能力才是真能力”无比同意! +7 zju2000 2026-09-26 8/400 2026-09-28 16:42 by beefly
[教师之家] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 GDBe8tDZqE8z 2026-09-28 3/150 2026-09-28 15:32 by ZYXdhzDAy9ZX
信息提示
请填处理意见