편집 기록

편집 기록
  • 프로필 엽토군님의 편집
    날짜2020.11.18

    파이썬으로 소수 리스트를 만드는데


    import math
    import pickle
    
    
    def prime_list(n):
        sieve = [True] * (n+1) # true: prime, false: not prime. default: true
    
        for i in range(2, int(math.sqrt(n))+1):
            if sieve[i] == True:
                for j in range(i+i, n+1, i):
                    sieve[j] = False
        return [i for i in range(2,n+1) if sieve[i] == True]
    
    
    
    list1 = prime_list(1000000000)
    
    with open("prime_10^9.pickle","wb") as fw:
        pickle.dump(list1, fw)
    

    에라토스테네스 체로 소수 리스트를 만드는데 108 이하의 소수 목록은 만들어지는데 109 부터는 메모리 오류가 나오네요. 혹시 어떻게 해야 될까요? 리스트 대신에 다른 자료형을 쓰면 될까요? 참고로 numpy 같은 모듈을 사용할 수가 없습니다.

  • 프로필 알 수 없는 사용자님의 편집
    날짜2020.11.18

    파이썬으로 소수 리스트를 만드는데


    import math
    import pickle
    
    
    def prime_list(n):
        sieve = [True] * (n+1) # true: prime, false: not prime. default: true
    
        for i in range(2, int(math.sqrt(n))+1):
            if sieve[i] == True:
                for j in range(i+i, n+1, i):
                    sieve[j] = False
        return [i for i in range(2,n+1) if sieve[i] == True]
    
    
    
    list1 = prime_list(1000000000)
    
    with open("prime_10^9.pickle","wb") as fw:
        pickle.dump(list1, fw)
    

    에라토스테네스 체로 소수 리스트를 만드는데 108이하의 소수 목록은 만들어지는데 109부터는 메모리 오류가 나오네요. 혹시 어떻게 해야 될까요? 리스트 대신에 다른 자료형을 쓰면 될까요? 참고로 numpy 같은 모듈을 사용할 수가 없습니다.