用Python解答ProjectEuler問題(3)
E003
The prime factors of 13195 are 5, 7, 13 and 29.
The prime factors of 13195 are 5, 7, 13 and 29.
What is the largest prime factor of the number 600851475143 ?
求600851475143的最大質因子。
今天重寫了求素數的方法
# -*- coding:utf-8 -*- class Prime: primes = [2] def __init__(self, maxpri): self.expandList(maxpri) def testNumber(self, x): """ 根據已知素數表用篩法進行測試x """ assert type(1)==type(x) #x必須是整數 if x<2: return False isPri = True for p in self.primes: if p*p>x: #只需測試被sqrt(x)以內的素數整除 break elif 0==x%p: #是合數 isPri = False break return isPri def expandList(self, maxpri, length=None): """ 擴充套件素數表到接近maxpri,或個數達到length """ x = self.primes[-1] while (True): x += 1 if self.testNumber(x): # Python中改寫類成員需要用self.__class__.引用 self.__class__.primes.append(x) #是否達到目標並退出 if maxpri and x>=maxpri: break if length and len(self.primes)>=length: break if __name__ == `__main__`: max = 100 pri = Prime(max*max) print str(pri.primes)
有了上面求素數的程式碼,現在我們可以這樣解決問題
from prime import Prime from math import sqrt, floor def problem3(number): lmt = floor(sqrt(number)) factor = 0 pri = Prime(lmt) for p in pri.primes: if 0==number%p: factor = p return factor if __name__ == `__main__`: print str(problem3(600851475143))
相關文章
- 用Python解答ProjectEuler問題(4)PythonProject
- 用Python解答ProjectEuler問題(1)PythonProject
- Python list,dict問題解答Python
- C++語言常見問題解答(3) (轉)
- Python程式設計常見問題與解答Python程式設計
- JVM問題及解答JVM
- Docker面試問題與解答Docker面試
- Oracle常用問題及解答Oracle
- xmlhttp的問題,盼望解答XMLHTTP
- APatch常見問題解答
- Python工程師必看的面試問題與解答(中)Python工程師面試
- LeetCode-two sum:python解答陣列問題LeetCodePython陣列
- 軟體新人問題解答(一)
- Ubuntu 常見問題和解答Ubuntu
- Linux常見問題解答Linux
- [譯] HTTP/2 常見問題解答HTTP
- RapidWeaver 8常見問題解答API
- 小遊戲引擎常見問題解答遊戲引擎
- [翻譯]K-99問題解答
- 【from MM】Flex 常見問題解答Flex
- vi 命令常見問題解答(轉)
- Windows 98 常見問題解答(轉)Windows
- C# 面試問題與解答1C#面試
- Python資料分析初體驗,需要解答的三大問題!Python
- 微課|玩轉Python輕鬆過二級:第3章課後習題解答3Python
- 不同應用場景的10個Linux面試問題與解答Linux面試
- Rhinoceros 6 for Mac的常見問題解答ROSMac
- 關於CleanMyMac常見問題與解答Mac
- Java面試常被問到的題目+解答Java面試
- SQL Server的安全設定問題解答SQLServer
- 專案管理常見問題解答(轉)專案管理
- 用自洽性提升大模型推理能力,谷歌解答基準中75%數學問題,比GPT-3提升20%大模型谷歌GPT
- 犀牛Rhinoceros 6 for Mac的常見問題解答ROSMac
- HTTPS總結+相關面試問題解答HTTP面試
- 30 個 Openstack 經典面試問題和解答面試
- ViewModel和LiveData問題思考與解答ViewLiveData
- 固態硬碟常見問題及其解答分享硬碟
- 吉特倉庫管理系統- 基本問題解答