본문 바로가기

알고리즘5

[Project Euler]5번문제 1 ~ 10 사이의 어떤 수로도 나누어 떨어지는 가장 작은 수는 2520입니다.그러면 1 ~ 20 사이의 어떤 수로도 나누어 떨어지는 가장 작은 수는 얼마입니까? 저는 1~20을 소인수 분해 해봤습니다.즉 2가 몇개인지, 3이 몇개 인지, 5가 몇개인지, 7이 몇개인지, 11이 몇개인지, 13이 몇개인지, 최소공배수를 구한겁니다. 2016. 2. 22.
[Project Euler]4번문제 앞에서부터 읽을 때나 뒤에서부터 읽을 때나 모양이 같은 수를 대칭수(palindrome)라고 부릅니다.두 자리 수를 곱해 만들 수 있는 대칭수 중 가장 큰 수는 9009 (= 91 × 99) 입니다.세 자리 수를 곱해 만들 수 있는 가장 큰 대칭수는 얼마입니까? 저는 세자리 수를 곱해서 만들 수 있는 최대 수를 우선 생각했습니다.그렇다면 최대 수는 999*999가 최대인데....1000000이 되지 못합니다.저는 900000이전의 숫자는 생각하지 않고 구했습니다. 이전의 숫자는 900000이후에 답이 있을 거라고 예상했기 때문입니다. (사실 이러면 편법이죠 ㅋㅋ) 그리고 배열에 넣어 확인 하였습니다. 2016. 2. 22.
[Project Euler]3번문제 어떤 수를 소수의 곱으로만 나타내는 것을 소인수분해라 하고, 이 소수들을 그 수의 소인수라고 합니다. 예를 들면 13195의 소인수는 5, 7, 13, 29 입니다.600851475143의 소인수 중에서 가장 큰 수를 구하세요. 정말 간단한 방법으로는 1부터 600851475143 숫자를 반복문으로 실행 후 하나씩 소수인지 판단해보면 간단하다 즉 이중반복문을 쓰면 된다. 그러면 대신 시간이 오래걸린다.. 그러면 다른 방법은 무엇일까?1~600851475143의 숫자를 소수인지를 판단후 소수이면 배열에 저장하고배열에 저장한 숫자로 다 나눠보고 소수가 아닌지 판단하면 좀더 시간이 단축된다. 하지만 소스가 조금 복잡하다 ㅎㅎ 여기까지는 문제가 쉬우니 소스를 올리지 않음 주소 : http://euler.syna.. 2016. 2. 20.
[Project Euler]2번문제 문제 2.피보나치 수열의 각 항은 바로 앞의 항 두 개를 더한 것이 됩니다. 1과 2로 시작하는 경우 이 수열은 아래와 같습니다.1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...짝수이면서 4백만 이하인 모든 항을 더하면 얼마가 됩니까? 말 그대로 하면되는데. 코딩 방식은.. 전 다 구해놓고 짝수로 판별 후 다 더했습니다 소스는 자기 스스로 문제 8번부터 올릴게요 ㅎㅎ주소: http://euler.synap.co.kr/prob_detail.php?id=2 2016. 2. 18.
[Project Euler]1번문제 문제 1.1000보다 작은 자연수 중에서 3 또는 5의 배수를 모두 더하면? 문제 풀이는 생각하면 간단하다. 3의 배수와 5의 배수를 다 구하면 된다.하지만 3의 배수와 5의 배수가 겹치는 겨우 즉 15의 배수를 빼주면 된다.3의 배수 + 5의 배수 - 15의 배수를 해주면 끝.!! 이제 코딩을 해보자. 코딩은 각자 ㅎㅎ 알아서 합시다 .ㅎㅎㅎ 문제주소: http://euler.synap.co.kr/prob_detail.php?id=1 2016. 2. 18.
반응형