24小时热门版块排行榜    

查看: 1578  |  回复: 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的回帖

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的回帖

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的回帖
相关版块跳转 我要订阅楼主 wangww2011 的主题更新
普通表情 龙 兔 虎 猫 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[论文投稿] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +5 2rKfVQg2jQww 2026-11-06 13/650 2026-11-09 03:03 by l48hFd8Nwae2
[考研] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +5 5sJFDKp2kwuI 2026-11-06 10/500 2026-11-09 02:59 by l48hFd8Nwae2
[论文投稿] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 5sJFDKp2kwuI 2026-11-06 11/550 2026-11-09 02:41 by l48hFd8Nwae2
[硕博家园] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +5 2rKfVQg2jQww 2026-11-06 11/550 2026-11-09 00:26 by l48hFd8Nwae2
[教师之家] 延安大学回应“副教授留绝笔信”:确已离世,正核实举报内容 +3 yexuqing 2026-11-04 5/250 2026-11-07 13:22 by 苏东坡二世
[公派出国] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +8 ncTVBM6AOJHF 2026-11-04 23/1150 2026-11-07 06:49 by Equinoxhua
[公派出国] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 ELBZ6WwEaRj6 2026-11-05 5/250 2026-11-06 16:43 by 5sJFDKp2kwuI
[考博] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +6 ELBZ6WwEaRj6 2026-11-05 8/400 2026-11-06 16:34 by 5sJFDKp2kwuI
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +6 ELBZ6WwEaRj6 2026-11-04 14/700 2026-11-06 16:32 by 5sJFDKp2kwuI
[考博] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +7 ncTVBM6AOJHF 2026-11-04 17/850 2026-11-06 13:47 by BkA9Bi5cMhkD
[考研] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +7 ncTVBM6AOJHF 2026-11-04 14/700 2026-11-06 13:47 by BkA9Bi5cMhkD
[考研] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +8 ncTVBM6AOJHF 2026-11-04 18/900 2026-11-06 13:36 by BkA9Bi5cMhkD
[考研] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 ELBZ6WwEaRj6 2026-11-04 10/500 2026-11-06 05:32 by qL1cU46YIdK0
[考研] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +4 ttH3f1oA6ace 2026-11-04 14/700 2026-11-06 05:11 by qL1cU46YIdK0
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +6 kvewwGtKktqB 2026-11-04 16/800 2026-11-06 05:00 by qL1cU46YIdK0
[硕博家园] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 ELBZ6WwEaRj6 2026-11-04 8/400 2026-11-06 02:24 by qL1cU46YIdK0
[公派出国] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 ELBZ6WwEaRj6 2026-11-04 9/450 2026-11-06 02:15 by qL1cU46YIdK0
[硕博家园] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 ttH3f1oA6ace 2026-11-04 9/450 2026-11-06 02:02 by qL1cU46YIdK0
[硕博家园] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +4 hNpp4Y2CGvSC 2026-11-04 12/600 2026-11-06 01:53 by qL1cU46YIdK0
[教师之家] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 ncTVBM6AOJHF 2026-11-04 12/600 2026-11-05 11:10 by PYZmcHr5kSaq
信息提示
请填处理意见