태그: algorithm

Project_Euler, 분류할 수 없는

오일러 프로젝트 001

오일러 프로젝트 1번 10보다 작은 자연수 중에서 3 또는 5의 배수는 3, 5, 6, 9 이고, 이것을 모두 더하면 23입니다. 1000보다 작은 자연수 중에서 3 또는 5의 배수를 모두 더하면 얼마일까요?(http://euler.synap.co.kr/prob_detail.php?id=1)

Python, 스터디

체를 사용하여 소수 집합 구하기

가장 빠른 알고리듬 현재까지 순수 파이썬으로 작성된 알고리듬 중 가장 빠른 것으로 알려진 것은 @Robert William Hanks가 개발한 아래 알고리듬이다. def primes(n): “””Return a list of primes under n””” sieve = [True] * (n/2) for i in xrange(3, int(n**0.5)+1, 2): if sieve[i/2]: sieve[i*i/2::i] = [False] * ((n-i*i-1)/(2*i)+1) return [2] + [2*i+1 for i in xrange(1, …

Python, 스터디

소인수분해로직

소인수분해1하기에 관한 알고리듬. 예전에는 클래스를 하나 만들어서 n보다 작은 소수의 리스트를 먼저 구해서 이를 사용했지만, 아래 알고리듬이 훨씬 빠르기 때문에 오일러프로젝트 문제 풀이에 매우 유용하다. 특히 나눌 수 있는 최소의 숫자를 찾는 함수에서 2, 3, 5로 먼저 나눠본 후 7에서 시작해서 4, 2를 번갈아 가면서 더하는 로직을 눈여겨보자. 이를 통해 3의 배수로 나눠보는 케이스를 최소화할 …