Python3 歐拉計劃 問題31-35

EulerProject.png

問題26—30參見:http://www.reibang.com/p/756fa99c2b03

31传轰、硬幣組合

??英國的貨幣單位包括英鎊£和便士p睛藻,在流通中的硬幣一共有八種:
????1p, 2p, 5p, 10p, 20p, 50p, £1 (100p), £2 (200p)
以下是組成£2的其中一種方式:
????1×£1 + 1×50p + 2×20p + 1×5p + 1×2p + 3×1p
??不限定使用的硬幣數(shù)目报腔,組成£2有多少種不同的方式涝缝。

Python3解答
#動態(tài)規(guī)劃思想膀斋,關(guān)于動態(tài)規(guī)劃可參見:http://www.reibang.com/p/e515efee2310
an=[1]+[0]*200
fan=[1,2,5,10,20,50,100,200]
for i in fan:
    for j in range(i,201):
        an[j]+=an[j-i]
print(an[200])
答案:73682

32屏积、全數(shù)字乘積式的和

??如果一個n位數(shù)包含了1至n的所有數(shù)字恰好一次,我們稱它為全數(shù)字的宾舅;例如统阿,五位數(shù)15234就是1至5全數(shù)字的。7254是一個特殊的乘積筹我,因為在等式39 × 186 = 7254中扶平,被乘數(shù)、乘數(shù)和乘積恰好是1至9全數(shù)字的蔬蕊。
??找出所有被乘數(shù)结澄、乘數(shù)和乘積恰好是1至9全數(shù)字的乘法等式,并求出這些等式中乘積的和 [注意:有些乘積可能從多個乘法等式中得到岸夯,但在求和的時候只計算一次]麻献。

Python3解答
def anfan(n1,n2):#判斷是否是全數(shù)字的
    a=list(str(n1))+list(str(n2))+list(str(n1*n2))
    hu=list(range(1,10))
    b=[]
    for i in hu:
        b.append(str(i))
    if b==sorted(a):     
        return True
def fanan(n1):#判斷數(shù)是否含有重復(fù)數(shù)字
    if len(list(str(n1)))==len(set(list(str(n1)))):
        return True
ana=[]#存儲乘積結(jié)果
fana = []#存儲表達(dá)式
#因數(shù)分別在(100, 1000) 和(10,100)之間
for i in range(100,1000):
    if fanan(i):
        for j in range(10,100):
            if fanan(j):
                if anfan(i,j):
                    ana.append(i*j)
                    fana.append('%d*%d=%d'%(i,j,i*j))
                elif len(list(str(i*j)))>=5:#乘積只有小于5位數(shù)才可能為全數(shù)字的
                    break
#因數(shù)分別在(2, 10) 和(1000猜扮,5000)之間                
for i in range(2,10):
    if fanan(i):
        for j in range(1000,5000):
            if fanan(j):
                if anfan(i,j):
                    ana.append(i*j)
                    fana.append('%d*%d=%d'%(i,j,i*j))
                elif len(list(str(i*j)))>=5:#乘積只有小于5位數(shù)才可能為全數(shù)字的
                    break
print(fana)
print(sum(g for g in set(ana)))
答案:['138*42=5796', '157*28=4396', '159*48=7632', '186*39=7254', '198*27=5346', '297*18=5346', '483*12=5796', '4*1738=6952', '4*1963=7852']
全數(shù)字乘積式之和[重復(fù)的只計算一次]:45228

33赎瑰、分?jǐn)?shù)化簡

??49/98是一個有趣的分?jǐn)?shù),因為缺乏數(shù)學(xué)知識的人可能會誤認(rèn)為破镰,等式49/98 = 4/8之所以成立餐曼,是因為在分?jǐn)?shù)線上下同時抹除了9的緣故。如果按照這么理解鲜漩,則存在諸如30/50 = 3/5這樣的平凡解源譬。
??這類有趣的分?jǐn)?shù)恰好有四個非平凡的例子,它們的分?jǐn)?shù)值小于1孕似,且分子和分母都是兩位數(shù)踩娘。將這四個分?jǐn)?shù)的乘積寫成最簡分?jǐn)?shù),求此時分母的值。

Python3解答
def an(li1,li2):#判斷去除共同數(shù)字后的剩余數(shù)字
    for i in li1:
        if i not in li2:
            return int(i)
def fan(n1,n2):#計算n1,n2約分后n2的值
    for i in range(1,n1+1):
        if n1%i==0 and n2%i==0:
            n1//=i
            n2//=i
    return n2
def anfan(n1,n2):#判斷2個數(shù)是否有共同的數(shù)字
    a,b=list(str(n1)),list(str(n2))
    if len(a+b)==len(set(a+b))+1 and '0' not in a and '0' not in b:
        return True
def fanan(n1,n2):#判斷兩個數(shù)去除掉共同的數(shù)字之后的商和之前商是否相等
    a,b=list(str(n1)),list(str(n2))
    c=a+b
    a1,b1=an(c,b),an(c,a)
    if n1/n2==a1/b1:
        return True
fan_an,an_fan=1,1
for i in range(10,100):
    for j in range(i,100):
        if anfan(i,j) and fanan(i,j):
            xa,xb=list(str(i)),list(str(j))
            xc=xa+xb
            print('%d / %d = %d / %d'%(i, j, an(xc,xb), an(xc,xa)))
            fan_an*=an(xc,xa)
            an_fan*=an(xc,xb)
print(fan(an_fan,fan_an))
答案:四個非平凡分?jǐn)?shù):
16 / 64 = 1 / 4
19 / 95 = 1 / 5
26 / 65 = 2 / 5
49 / 98 = 4 / 8
分?jǐn)?shù)乘積約分后的分母:100

34养渴、數(shù)字階乘

??145是個有趣的數(shù)雷绢,因為有如下關(guān)系:
????1! + 4! + 5! = 1 + 24 + 120 = 145
??找出所有各位數(shù)字的階乘和等于其本身的數(shù)理卑,并求它們的和翘紊。[注意: 1! = 1和2! = 2,由于不是和的形式藐唠,所以它們并不在此范圍內(nèi)]帆疟。

Python3解答
an_dict={'0':1,'1':1,'2':2,'3':6,'4':24,'5':120,'6':720,'7':5040,'8':40320,'9':362880}
hu=0
for i in range(10,8*362880):
    ji=list(str(i))
    jde=0
    for ff in ji:
        jde+=an_dict[ff]
    if jde==i:#數(shù)字階乘的和等于數(shù)
        hu+=i
        print('滿足條件的數(shù)有:%d'%i)
print(hu)
答案:滿足條件的數(shù)有:145
滿足條件的數(shù)有:40585
和為:40730

35、循環(huán)素數(shù)

??197被稱為循環(huán)素數(shù)宇立,因為將它逐位旋轉(zhuǎn)所得到的數(shù):197踪宠、971和719都是素數(shù)。
小于100的循環(huán)素數(shù)有十三個:
????2妈嘹、3柳琢、5、7润脸、11柬脸、13、17津函、31肖粮、37孤页、71尔苦、73、79行施、97
??小于一百萬的循環(huán)素數(shù)有多少個允坚。

Python3解答
def an_del(number):#刪除具有某些特征的數(shù)
    ji=list(str(number))
    su,us=[0,2,4,6,8,5],[4,6,8,9]
    if len(ji)==1:#不是素數(shù)
        if number in us:
            return True
    else:
        for i in ji:#以su中數(shù)字結(jié)尾的都不是素數(shù)
            if int(i) in su:
                return True
        return False

def com_pri(number):#判斷素數(shù)
    if number==2:
        return True
    else:
        for i in range(2,int(number**0.5)+1):
            if number%i==0:
                return False
        else:
            return True
def an_fan(number):#將一個數(shù)循環(huán)
    hu=list(str(number))
    huuu=[hu]
    for i in range(1,len(hu)):
        a=[0]*len(hu)
        for h in range(len(hu)):
            if i+h>=len(hu):
                a[h]=hu[i+h-len(hu)]
            else:
                a[h]=hu[i+h]
        huuu.append(a)
    nu_hu=[]
    for jj in range(len(huuu)):
        nnu=''
        for hh in range(len(huuu[0])):
            nnu+=huuu[jj][hh]
        nu_hu.append(int(nnu))
    return nu_hu

anfan=0
for i in range(2,1000000):
    if not an_del(i) and com_pri(i):
        hh=0
        for hg in an_fan(i):
            if not com_pri(hg):
                hh = 1
                break
        if hh==0:
            anfan+=1
print(anfan)
答案:55

持續(xù)更新,歡迎討論蛾号,敬請關(guān)注3硐睢!鲜结!??

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末展运,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子精刷,更是在濱河造成了極大的恐慌拗胜,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件怒允,死亡現(xiàn)場離奇詭異埂软,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)纫事,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進(jìn)店門勘畔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來所灸,“玉大人,你說我怎么就攤上這事炫七∨懒ⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵诉字,是天一觀的道長懦尝。 經(jīng)常有香客問我,道長壤圃,這世上最難降的妖魔是什么陵霉? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮伍绳,結(jié)果婚禮上踊挠,老公的妹妹穿的比我還像新娘。我一直安慰自己冲杀,他們只是感情好效床,可當(dāng)我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著权谁,像睡著了一般剩檀。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上旺芽,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天沪猴,我揣著相機(jī)與錄音,去河邊找鬼采章。 笑死运嗜,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的悯舟。 我是一名探鬼主播担租,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼抵怎!你這毒婦竟也來了奋救?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤反惕,失蹤者是張志新(化名)和其女友劉穎尝艘,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體承璃,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡利耍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片隘梨。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡程癌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出轴猎,到底是詐尸還是另有隱情嵌莉,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布捻脖,位于F島的核電站锐峭,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏可婶。R本人自食惡果不足惜沿癞,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望矛渴。 院中可真熱鬧椎扬,春花似錦、人聲如沸具温。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽铣猩。三九已至揖铜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間达皿,已是汗流浹背天吓。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留鳞绕,地道東北人失仁。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓尸曼,卻偏偏與公主長得像们何,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子控轿,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 26冤竹、最長的倒數(shù)循環(huán)節(jié) ??單位分?jǐn)?shù)是指分子為1的分?jǐn)?shù)。分母從2到10的單位分?jǐn)?shù)的十進(jìn)制表示如下所示:????1/...
    AiFany閱讀 1,089評論 0 0
  • 6茬射、平方的和與和的平方之差 ??前10個自然數(shù)平方的和是:1^2 + 2^2 +… + 10^2 = 385鹦蠕。前1...
    AiFany閱讀 867評論 1 0
  • 第一章數(shù)和數(shù)的運(yùn)算 一概念 (一)整數(shù) 1整數(shù)的意義 自然數(shù)和0都是整數(shù)。 2自然數(shù) 我們在數(shù)物體的時候在抛,用來表示...
    meychang閱讀 2,592評論 0 5
  • 課程結(jié)束第三天晚上钟病,聽著《長長的路 慢慢的走》,開始寫我的二階總結(jié)。 回來三天肠阱,我一直在生财彼簟:嗓子痛、流鼻涕屹徘,貌似...
    Celina_Wang閱讀 219評論 0 7
  • 安裝的時候記得選擇配置系統(tǒng)變量
    杜鄉(xiāng)的AGG閱讀 815評論 0 51