설명

http://euler.synap.co.kr/ 7번 문제입니다.

문제

소수를 크기 순으로 나열하면 2, 3, 5, 7, 11, 13, ... 과 같이 됩니다.
이 때 10,001번째의 소수를 구하세요.

코드

파이썬 2.7  

1
2
3
4
5
6
7
8
9
10
11
12
def is_sosu(n):
    for i in range(2,n):
        if n%i == 0:
            return 0
    return 1
    
count = 0
for i in range(2,1000000):
    if is_sosu(i):
        count+=1
        if count == 10001:
            print i
cs

할말

별다른 알고리즘을 사용하지 않아서 1~2분 걸립니다.
2의배수 3의배수 등을 걸러내면 속도가 조금 줄어듭니다.
댓글

댓글을 달아 주세요

댓글 달기
접기