[그림 01] Problem 007 문제
문제 이름 : 10001번째 소수
문제 내용 : 처음 6개의 소수가 2, 3, 5, 7, 11, 13이라고 할 때, 6번째 소수는 13이라는 걸 알 수 있습니다. 그렇다면 10001번째의 소수는 무엇입니까?
우리는 간단하게 다음과 같은 조건을 만족하는 소스를 작성해봅시다.
1. 소수를 구하는 함수
2. 소수 리스트의 길이가 10001이 될 때까지 반복
3. 마지막 소수를 출력
이제 소스를 작성해봅시다.
#Problem 007 #Python 3 version source #By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13. #What is the 10 001st prime number? def getPrime(): #소수 구하는 함수 primeList = [2] #소수 첫번째 리스트 num = 3 #두 번째 소수 비교하는 수 while(len(primeList) < 10001): #primeList가 10001번째보다 작으면 계속 반복 for x in primeList: if(num % x == 0): break elif(x == primeList[-1]): primeList.append(num) break num += 1 return primeList if __main__ = "__name__": Main_primeList = getPrime() print(Main_primeList[-1]) #마지막 소수 리스트의 숫자를 출력
getPrime 함수는 소수를 구하는 함수이고, 이 함수는 primeList의 길이가 10001번째가 아니면 계속 반복하여 구하는 구조입니다.
그리고 모두 구한 후, main에 있는 변수로 리턴해주고, 이 중 마지막 리스트를 출력합니다.
이제 저보다 잘하는 사람의 소스를 참고해봅시다.
두근두근...!!
#python 2 version source import prime print prime.prime(10000)
오... 신이시여... 이럴수가...
위의 소스는 prime이라는 모듈을 다운받아야 실행이 되는 것 같습니다.
저는 다운받는데 실패했습니다.
흑흑.... 그냥 저 위의 소스를 활용하렵니다.
'PYTHON > Project Euler(프로젝트 오일러)' 카테고리의 다른 글
Problem_011_Largest product in a grid (0) | 2017.01.26 |
---|---|
Problem_010_Summation of primes (0) | 2017.01.20 |
Problem_009_Special Pythagorean triplet (0) | 2017.01.20 |
Problem_008_Largest product in a series (0) | 2017.01.09 |
Problem_006_Sum square difference (0) | 2017.01.07 |
Problem_005_Smallest Multiple (0) | 2017.01.06 |
Problem_004_Largest palindrome product (0) | 2017.01.03 |
Problem_003_Largest prime factor (0) | 2016.12.30 |