로그인하고 있지 않습니다. 편집하면 당신의 IP 주소가 공개적으로 기록됩니다. 계정을 만들고 로그인하면 편집 시 사용자 이름만 보이며, 위키 이용에 여러 가지 편의가 주어집니다.스팸 방지 검사입니다. 이것을 입력하지 마세요!{{웹사이트 정보 |이름 = 프로젝트 오일러 |원어이름 = |패비콘 = |로고 = |그림 = |그림설명 = |URL = https://projecteuler.net (영어)<br />http://euler.synap.co.kr (한국) |종류 = |운영 = |제작 = Colin Hughes |언어 = [[영어]] |시작일 = [[2001년]] [[10월 5일]] |종료일 = |회원가입 = |라이선스 = [[크리에이티브 커먼즈 라이선스|CC BY-NC-SA 2.0 UK]] |영리여부 = 비영리 |작성언어 = |비고 = }} == 개요 == '''본격 [[수학]] + [[프로그래밍]] 챌린지''' 프로젝트 오일러(Project Euler)란, 익숙하지 분야에 대해 깊게 탐구할 수 있는 바탕과, 새로운 개념에 대해 재미있게 배울 수 있는 기회를 제공하기 위해 시작된 영국의 프로젝트다. 간단히 말하면, 그냥 프로그래밍으로 수학 문제 푸는 웹 사이트. 수학에 관심이 있다면 국가에 상관없이 누구나 이 프로젝트에 참여해 문제를 풀 수 있지만, [[영어]]가 어느 정도 뒷받쳐줘야 한다. [[한국어]]로 번역된 사이트도 존재하긴 하지만 번역 속도가 그리 빠른 편은 아니다. 영어 웹 사이트에는 500개가 넘는 문제가 등록되어 있는 반면, 한국 웹 사이트에는 100개 조금 넘는 문제만 번역이 되었기 때문에 더 많은 문제를 풀고 싶다면 영어가 필수. {{ㅊ|사실 대부분의 사람들은 100 문제는 커녕 10 문제도 풀기 힘들다.}} == 참여 방법 == 문제를 보는 것은 가입이 필요 없지만, 답안을 제출하고 맞았는지 틀렸는지 확인하기 위해서는 가입이 필수다. 가입이라고 해봤자 아이디랑 비밀번호 적는게 전부. 이메일 인증같은 것도 없다. == 문제 == 웹 사이트에 있는 모든 문제는 [[수학]]적 지식을 필요로 하지만, 수학보다 더 중요한 것은 바로 [[프로그래밍]] 실력. 처음 몇 문제는 수학 실력이 되면 손으로 써서 풀 수 있지만, 조금만 넘어가면 프로그래밍이 필수. '''설마 10001 번째 [[소수]]를 정말로 손으로 찾으려는 생각은 아니겠지?''' (7번 문제) 그나마 다행인 것은, 대부분의 문제가 심오한 수학적 이론을 필요로 하지 않고, 초·중·고등학교에서 배우는 것들을 활용하여 해결할 수 있다는 점. 예시로, 1번 문제를 풀어보자. {{인용문|10 미만의 자연수 중 3과 5의 배수를 나열하면 3, 5, 6, 9가 있습니다. 이 배수의 합은 23입니다.<br />1000 미만의 자연수 중 3과 5의 배수를 모두 더한 값은 얼마인가요?}} 초등학교 때 풀어봤을 법한 문제다. 숫자가 1000 미만이기 때문에 마음만 먹으면 노가다로도 풀 수 있지만, [[포함과 배제의 원리]]를 사용하면 간단하다. :<math>\sum_{x=1}^{\lfloor\frac{1000}{3}\rfloor}\left(3x\right)+\sum_{x=1}^{\lfloor\frac{1000}{5}\rfloor}\left(5x\right)-\sum_{x=1}^{\lfloor\frac{1000}{15}\rfloor}\left(15x\right)-1000</math> 위 식을 풀면 답이다. 이 문제는 손으로도 쉽게 계산할 수 있지만, 프로그래밍을 쓴다면 [[포함과 배제의 원리]]를 쓸 필요도 없이 쉽게 문제를 풀 수 있다. 아래는 1번 문제를 푸는 [[자바]] 코드. <syntaxhighlight lang=java> public class Problem1 { public static void main(String args[]) { int sum=0; for(int x=1;x<1000;x++) { if (x%3==0 || x%5==0) sum += x; } System.out.println(sum); } } </syntaxhighlight> [[C#]] 코드 <syntaxhighlight lang="csharp"> class Program { static void Main(string[] args) { Console.WriteLine(Enumerable.Range(1, 999).Where(i => i % 3 == 0 || i % 5 == 0).Sum()); } } </syntaxhighlight> 물론, 당신이 이런 단순 무식한 프로그래밍 방법보다 효율적인 프로그램을 짜고 싶다면 말리진 않겠다. 다만, 효율적인 프로그램을 짜기 위해서는 그에 맞는 수학적 이론이 필요로 하단 사실만 알아두자. 만약 문제를 풀어 맞췄다면 해당 문제의 스레드를 볼 수 있다. 수많은 프로그래밍 실력자들의 효율적인 코드들을 볼 수 있으므로 프로그래밍을 공부한다면 참고하자. == 관련 링크 == *[https://projecteuler.net 원래 웹 사이트] *[http://euler.synap.co.kr 한국 번역 사이트] [[분류:웹 사이트]][[분류:수학]][[분류:컴퓨터 프로그래밍]] 요약: 리브레 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 3.0 라이선스로 배포됩니다(자세한 내용에 대해서는 리브레 위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요. 글이 직접 작성되었거나 호환되는 라이선스인지 확인해주세요. 리그베다 위키, 나무위키, 오리위키, 구스위키, 디시위키 및 CCL 미적용 사이트 등에서 글을 가져오실 때는 본인이 문서의 유일한 기여자여야 하고, 만약 본인이 문서의 유일한 기여자라는 증거가 없다면 그 문서는 불시에 삭제될 수 있습니다. 취소 편집 도움말 (새 창에서 열림) | () [] [[]] {{}} {{{}}} · <!-- --> · [[분류:]] · [[파일:]] · [[미디어:]] · #넘겨주기 [[]] · {{ㅊ|}} · <onlyinclude></onlyinclude> · <includeonly></includeonly> · <noinclude></noinclude> · <br /> · <ref></ref> · {{각주}} · {|class="wikitable" · |- · rowspan=""| · colspan=""| · |} {{lang|}} · {{llang||}} · {{인용문|}} · {{인용문2|}} · {{유튜브|}} · {{다음팟|}} · {{니코|}} · {{토막글}} {{삭제|}} · {{특정판삭제|}}(이유를 적지 않을 경우 기각될 가능성이 높습니다. 반드시 이유를 적어주세요.) {{#expr:}} · {{#if:}} · {{#ifeq:}} · {{#iferror:}} · {{#ifexist:}} · {{#switch:}} · {{#time:}} · {{#timel:}} · {{#titleparts:}} __NOTOC__ · __FORCETOC__ · __TOC__ · {{PAGENAME}} · {{SITENAME}} · {{localurl:}} · {{fullurl:}} · {{ns:}} –(대시) ‘’(작은따옴표) “”(큰따옴표) ·(가운뎃점) …(말줄임표) ‽(물음느낌표) 〈〉(홑화살괄호) 《》(겹화살괄호) ± − × ÷ ≈ ≠ ∓ ≤ ≥ ∞ ¬ ¹ ² ³ ⁿ ¼ ½ ¾ § € £ ₩ ¥ ¢ † ‡ • ← → ↔ ‰ °C µ(마이크로) Å °(도) ′(분) ″(초) Α α Β β Γ γ Δ δ Ε ε Ζ ζ Η η Θ θ Ι ι Κ κ Λ λ Μ μ(뮤) Ν ν Ξ ξ Ο ο Π π Ρ ρ Σ σ ς Τ τ Υ υ Φ φ Χ χ Ψ ψ Ω ω · Ά ά Έ έ Ή ή Ί ί Ό ό Ύ ύ Ώ ώ · Ϊ ϊ Ϋ ϋ · ΐ ΰ Æ æ Đ(D with stroke) đ Ð(eth) ð ı Ł ł Ø ø Œ œ ß Þ þ · Á á Ć ć É é Í í Ĺ ĺ Ḿ ḿ Ń ń Ó ó Ŕ ŕ Ś ś Ú ú Ý ý Ź ź · À à È è Ì ì Ǹ ǹ Ò ò Ù ù · İ Ż ż ·  â Ĉ ĉ Ê ê Ĝ ĝ Ĥ ĥ Î î Ĵ ĵ Ô ô Ŝ ŝ Û û · Ä ä Ë ë Ï ï Ö ö Ü ü Ÿ ÿ · ǘ ǜ ǚ ǖ · caron/háček: Ǎ ǎ Č č Ď ď Ě ě Ǐ ǐ Ľ ľ Ň ň Ǒ ǒ Ř ř Š š Ť ť Ǔ ǔ Ž ž · breve: Ă ă Ğ ğ Ŏ ŏ Ŭ ŭ · Ā ā Ē ē Ī ī Ō ō Ū ū · à ã Ñ ñ Õ õ · Å å Ů ů · Ą ą Ę ę · Ç ç Ş ş Ţ ţ · Ő ő Ű ű · Ș ș Ț ț 이 문서에서 사용한 틀: 틀:ㅊ (원본 보기) (준보호됨)틀:웹사이트 정보 (원본 보기) (준보호됨)틀:인용문 (원본 보기) (준보호됨)틀:정보상자 주제칸 (원본 보기) (준보호됨)틀:정보상자 칸 (원본 보기) (준보호됨)틀:정보상자 큰칸 (원본 보기) (준보호됨)틀:취소선 (원본 보기) (준보호됨)