Python3 欧拉计划 问题41-45

EulerProject.png

问题36—40参见:https://www.jianshu.com/p/e455bf4ccfc9

41、全数字的素数

  如果一个n位数恰好使用了1至n每个数字各一次,我们就称其为全数字的。例如,2143就是一个4位全数字数,同时它恰好也是一个素数。
  最大的全数字的素数是多少。

Python3解答
#这个数字不可能是8、9位数。因为可以被3整除。
def an_pri(number):#判断素数
    if number==2:
        return True
    elif number>2:
        for i in range(2,int(number**0.5)+1):
            if number%i==0:
                return False
        return True
    elif number==1:
        return False
def an_lastdi(number):#根据尾数筛选素数
    hu,hh=[2,4,6,8,5],list(str(number))
    if int(hh[-1]) in hu:
        return False
    return True
def an_len(number):#根据数字长度筛选素数
    uh=len(str(number))
    if uh==9 or uh==6 or uh==3:
        return False
    return True
def an_once(number):#判断全数字的
    hu=list(str(number))
    uh,an_hu=list(range(1,len(hu)+1)),[]
    for j in hu:
        an_hu.append(int(j))
    if sorted(an_hu)==uh:
        return True
for i in range(7654321,1,-1):
    if an_len(i) and an_lastdi(i) and an_once(i):
        if an_pri(i):
            print(i)
            break
答案:7652413

42、三角形单词

  三角形数序列的第n项tn可由公式n(n+1)/2得到;因此前十个三角形数是:
    1, 3, 6, 10, 15, 21, 28, 36, 45, 55, …
将一个单词中的每个字母分别转化为其在字母表中的顺序并相加,我们可以计算出一个单词的值。例如,单词SKY的值就是 19 + 11 + 25 = 55 = t10。如果一个单词的值是一个三角形数,我们就称这个单词为三角形单词
  在文件words.txt 中包含有将近两千个常用英文单词,这其中有多少个三角形单词。

Python3解答
#读取文件
with open(r'C:\Users\GWT9\Desktop\p042_words.txt')as an_file:
    fan=an_file.read()
    fan_an=fan.replace('"','').split(',')
#判断是否为三角形数
def an_trin(number):
    sboot = int((2*number)**0.5)
    if 2*number==sboot*(sboot+1):
        return True
#计算单词中字母对应的顺序之和
def an_ord(str1):
    return sum(ord(i)-64 for i in str1)
fan=0
for h in fan_an:
    if an_trin(an_ord(h)):
        fan+=1
print(fan)
答案:162

43、子串可整除

  1406357289是一个0至9的全数字数,因为它由0到9这十个数字排列而成;但除此之外,它还有一个有趣的性质:子串可整除
  记d1是它的第一个数字,d2是第二个数字,依此类推,我们注意到:
    d2d3d4=406能被2整除
    d3d4d5=063能被3整除
    d4d5d6=635能被5整除
    d5d6d7=357能被7整除
    d6d7d8=572能被11整除
    d7d8d9=728能被13整除
    d8d9d10=289能被17整除
  找出所有满足同样性质的0至9全数字数,并求它们的和。

Python3解答
from itertools import permutations as ip#引入组合库
hh=[''.join(list(i)) for i in list(ip('1023456789'))]
alldigit = []
for i in hh:
    if i[0]!='0':
        if int(i[7:10])%17==0:
            if int(i[6:9])%13==0:
                if int(i[5:8])%11==0:
                    if int(i[4:7])%7==0:
                        if i[5] in ['0','5']:
                            if int(i[2:5])%3==0:
                                if int(i[3])%2==0:
                                    alldigit.append(int(i))
print(alldigit)
print(sum(alldigit))
答案:满足此条件的数:[1406357289, 1430952867, 1460357289, 4106357289, 4130952867, 4160357289]
所有数之和:16695334890

44、五边形数

  五边形数是由公式Pn=n(3n−1)/2生成。前10个五边形数是:
    1, 5, 12, 22, 35, 51, 70, 92, 117, 145, …
可以看出P4 + P7 = 22 + 70 = 92 = P8。然而,它们的差70 − 22 = 48并不是五边形数。
  在所有和差均为五边形数的五边形数对Pj和Pk中,找出使D = |Pk − Pj|最小的一对,此时D的值是。

Python3解答
def an_pan(number):#判断是否为五边形数
    if ((24*number+1)**0.5+1)%6==0:
        return True
an_set,i,af=set(),0,1
while af!=0:
    i+=1
    fan=int(i*(3*i-1)/2)
    an_set.add(fan)
    for an in an_set:
        if fan-an in an_set and an_pan(an+fan):
            print(fan, an, fan-an)
            af=0
答案:五边形数对【7042750 ,1560090】
差为:5482660

45、三角形数、五边形数和六角形数

  三角形数、五边形数和六角形数分别由以下公式给出:
    三角形数 Tn=n(n+1)/2 1, 3, 6, 10, 15, …
    五边形数 Pn=n(3n−1)/2 1, 5, 12, 22, 35, …
    六边形数 Hn=n(2n−1) 1, 6, 15, 28, 45, …
可以验证,T285 = P165 = H143 = 40755。
  找出下一个同时是三角形数、五边形数和六角形数的数。

Python3解答
def an_fan(num):
    if((24*num+1)**0.5+1)%6==0:#判断五边形数
        if ((8*num+1)**0.5+1)%4==0:#判断六角形数
            return True
n=285
while True:
    n+=1
    fan=int(n*(n+1)/2)#三角形数
    if an_fan(fan):
        print(fan)
        break
答案:1533776805

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

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

推荐阅读更多精彩内容

  • 第一章数和数的运算 一概念 (一)整数 1整数的意义 自然数和0都是整数。 2自然数 我们在数物体的时候,用来表示...
    meychang阅读 2,516评论 0 5
  • 小学奥数其实很简单,以下是这六个部分的知识点! 1 第一部分(知识点1-6) 2、年龄问题的三个基本特征: ①两个...
    小一哥阅读 1,285评论 0 3
  • 由于41周有一半的假期,计划中的大部分工作基本完成,具体情况总结如下: 1、未完成的部分多属于不紧急任务,有1项重...
    心一书简阅读 238评论 0 1
  • 我家在林垟林北村,门前有条弯弯曲曲的石板路,一条弯弯曲曲的河,河往北是飞云,往南是平阳,围绕着河边是一排排杨...
    皮蛋_b715阅读 1,962评论 6 5
  • 上周教《回乡偶书》和《赠汪伦》,我忍不住在二年级孩子面前说了句或许他们听不太懂的话——“人生有两种状态,一...
    Neverland_susie阅读 502评论 4 2