Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 파이썬
- python3
- 유체역학
- Finite Difference Method
- 디스크 컨트롤러
- Fluid Dynamics
- Blasius
- Compressible Flow
- 통계학
- 이중우선순위큐
- 힙
- 회귀
- 우선순위큐
- Laminar
- Statistics
- 프로젝트오일러
- Heat Equation
- programmers
- Crank-Nicolson
- Boundary Layers
- Navier-Stokes
- heap
- projecteuler
- FTCS
- Turbulent
- 예제
- Fluids
- Python
- regression
- 프로그래머스
Archives
- Today
- Total
Sudal's Garage
Project Euler 35 본문
Question:
The number, 197, is called a circular prime because all rotations of the digits: 197, 971, and 719, are themselves prime.
There are thirteen such primes below 100: 2, 3, 5, 7, 11, 13, 17, 31, 37, 71, 73, 79, and 97.
How many circular primes are there below one million?
문제:
소수 중 각 자릿수를 순환시켜도 모두 소수인 수를 써큘러 소수라 한다.(circular prime) 197은 소수이면서 각 자릿수를 순환시킨 971, 719도 소수이므로 써큘러 소수에 해당한다.
100보다 작은 써큘러 소수는 다음과 같이 13개가 있다: 2, 3, 5, 7, 11, 13, 17, 31, 37, 71, 73, 79, 97
백만보다 작은 써큘러 소수는 몇 개일까?
Solution:
from sympy import isprime,sieve import time def cirPrime(n): #Circular Prime 일 경우 True를 반환한다. numlist = list(str(n)) # 숫자에 짝수가 들어간 경우를 제외시켜준다. if numlist.count('0') != 0: return False elif numlist.count('2') != 0: return False elif numlist.count('4') != 0: return False elif numlist.count('6') != 0: return False elif numlist.count('8') != 0: return False for i in range(len(str(n))): if not isprime(int("".join(numlist))): return False numlist.append(numlist.pop(0)) #처음 수를 뒤로 옮긴다. return True cir = [2] start = time.time() for i in sieve.primerange(1,1000000): if cirPrime(i): cir.append(i) print("""The number of circular primes below one million: {0} Found in ... {1:.3f}s""".format(len(cir),time.time() - start))
2 는 cirPrime 에 들어가면 False 를 반환시키므로 미리 list 에 추가시켜준다.
0.62 초 걸렸다!
'Programming > Project Euler - python' 카테고리의 다른 글
Project Euler 37 (0) | 2019.03.30 |
---|---|
Project Euler 36 (0) | 2019.03.29 |
Project Euler 34 (0) | 2019.03.27 |
Project Euler 33 (0) | 2019.03.26 |
Project Euler 32 (0) | 2019.03.25 |