Python3 欧拉计划 问题6-10

EulerProject.png

问题1-5参见 http://www.jianshu.com/p/f333469fe784

6、平方的和与和的平方之差

  前10个自然数平方的和是:1^2 + 2^2 +… + 10^2 = 385。前10个自然数和的平方是:(1 + 2 + … + 10)^2 = 55^2=3025。因此前10个自然数的平方的和与和的平方之差是 3025−385=2640。求前100个自然数平方的和与和的平方之差。

Python3解答
an=sum(i**2 for i in range(1,101))
fan=sum(i for i in range(1,101))**2
print(fan-an)
答案:25164150

7、第10001个素数

  如果要依次列出前6个素数的话,它们是:2、3、5、7、11和13。可以看出,第6个素数是13。求第10001个素数。

Python3解答
def an_prime(number):
    if number==1 or number==0:
        return False
    for i in range(2,int(number**0.5)+1):
        if number%i==0 and number>i:
            return False
    return True
d,count=0,0
while 1:
    if an_prime(d):
        count+=1
        if count==10001:
            break
    d+=1
print(d) 
答案:104743

问题8、连续数字最大乘积

  在下面的1000个正整数中,连续4个数字的最大乘积是 9 × 9 × 8 × 9 = 5832。

73167176531330624919225119674426574742355349194934
96983520312774506326239578318016984801869478851843
85861560789112949495459501737958331952853208805511
12540698747158523863050715693290963295227443043557
66896648950445244523161731856403098711121722383113
62229893423380308135336276614282806444486645238749
30358907296290491560440772390713810515859307960866
70172427121883998797908792274921901699720888093776
65727333001053367881220235421809751254540594752243
52584907711670556013604839586446706324415722155397
53697817977846174064955149290862569321978468622482
83972241375657056057490261407972968652414535100474
82166370484403199890008895243450658541227588666881
16427171479924442928230863465674813919123162824586
17866458359124566529476545682848912883142607690042
24219022671055626321111109370544217506941658960408
07198403850962455444362981230987879927244284909188
84580156166097919133875499200524063689912560717606
05886116467109405077541002256983155200055935729725
71636269561882670428252483600823257530420752963450

找出这个1000个正整数中乘积最大的连续的13个数字,求它们的乘积。

Python3解答
#将以上数据复制到txt文件:secries.txt
an=[]#存储数据
for line in open(r'C:\Users\GWT9\Desktop\ss.txt'):#读取数据
    for i in line:
        for j in i:
            if j!='\n':
                an.append(int(j))
zuida=13        
fan={}#存储连续13个数字的乘积
for i in range(0,len(an)+1-zuida):
    ss=1
    for j in an[i:i+zuida]:
        ss*=j
    fan[i]=ss
#选择字典中值最大的对应的键值
maxkey=max(fan.items(),key=lambda x:x[1])
print(an[maxkey[0]:maxkey[0]+zuida])#[5, 5, 7, 6, 6, 8, 9, 6, 6, 4, 8, 9, 5]
print(maxkey)
答案:23514624000

9、特殊的毕达哥拉斯三元组

  毕达哥拉斯三元组是三个自然数a < b < c组成的集合,并满足a^2+ b^2 = c^2。 例如3^2 + 4^2 = 9 + 16 = 25 = 5^2。有且只有一个毕达哥拉斯三元组满足 a + b + c = 1000。求这个三元组的乘积abc。

Python3解答
for i in range(1,300):#abc最小值肯定低于300
    for j in range(1,500):#abc中间值肯定低于500
        if i**2+j**2==(1000-i-j)**2:
            print(i,j,1000-i-j)#200 375 425
            print(i*j*(1000-i-j))
答案:31875000

10、素数之和

  所有小于10的素数的和为2 + 3 + 5 + 7 = 17。求小于两百万的所有素数之和。

Python3解答
#一般方法:全部数字都遍历 用时:23.517s
def an_prime(number):
    for i in range(2,int(number**0.5)+1):
        if number%i==0 and number!=i:
            return False
    return True
anfan=0
for i in range(2,2000000):#全部遍历
    if an_prime(i):
        anfan+=i
print(anfan)

#优化方法:数字筛选 用时:0.124s
def primes(n):
    an=[True]*n
    for i in range(3,int(n**0.5)+1,2):#消去合数
        if an[i]:
            an[i*i::2*i]=[False]*int((n-i*i-1)/(2*i)+1)
    primelist=[2]+[j for j in range(3,n,2) if an[j]]
    return sum(primelist)
print(primes(2000000))
答案:142913828922

持续更新,欢迎讨论,敬请关注!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容