본문 바로가기
반응형

프로젝트 오일러4

Project Euler(프로젝트 오일러) Problem 4 - Python 문제 앞에서부터 읽을 때나 뒤에서부터 읽을 때나 모양이 같은 수를 대칭수(palindrome)라고 부릅니다. 두 자리 수를 곱해 만들 수 있는 대칭수 중 가장 큰 수는 9009 (= 91 x 99) 입니다. 세 자리 수를 곱해 만들 수 있는 가장 큰 대칭수는 얼마입니까? 100 * 100 부터 999 * 999 까지 대칭수를 구하는 문제입니다. 100 * 100 부터 999 * 999 까지 계산을 진행하게 되는데, 계산 결과를 문자열로 바꾸어 저장(strData)하고, 문자열의 중간을 기준으로 하여 좌우가 같은지를 확인하게 됩니다. 우선 문자열 길이의 중간을 기준으로 잘라 첫 번째 숫자를 구합니다. 그리고 문자열의 맨 끝 부터 기준까지 거꾸로 받아와 두 번째 숫자를 구합니다. * 문자열의 길이가 3일 경.. 2019. 4. 2.
Project Euler(프로젝트 오일러) Problem 3 - Python 문제 어떤 수를 소수의 곱으로만 나타내는 것을 소인수분해라 하고, 이 소수들을 그 수의 소인수라고 합니다. 예를 들면 13195의 소인수는 5, 7, 13, 29 입니다. 600851475143의 소인수 중에서 가장 큰 수를 구하세요. 소수란 1을 제외한 약수로 1과 자기 자신만을 갖는 수를 말합니다. 변수 i는 2부터 시작하여 1씩 증가하며 600,851,475,143의 숫자와 비교하게 됩니다(변수명: num). num 나누기 i를 진행하였을 때 나머지가 0인 경우(나누어 떨어질 경우) 그 수를 result 변수에 저장해놓고, num의 값을 num 나누기 i 값으로 바꾸어 줍니다. 소인수 중 가장 큰 수를 구하는 문제이므로 result 변수에 저장할 때 result 값이 i 값 보다 작을 경우 더 큰 .. 2019. 4. 2.
Project Euler(프로젝트 오일러) Problem 2 - Python 문제 피보나치 수열의 각 항은 바로 앞의 항 두 개를 더한 것이 됩니다. 1과 2로 시작하는 경우 이 수열은 아래와 같습니다. 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 ... 짝수이면서 4백만 이하인 모든 항을 더하면 얼마가 됩니까? 피보나치 수열의 특성은 현재의 항의 값은 바로 앞의 항 두 개를 더한 값입니다. 바로 앞의 항 두개를 나타내는 변수인 prev와 curr를 활용하여 문제를 해결해 나가고자 합니다. prev와 curr를 더한 결과(data)가 400만이 넘을 경우 반복문에서 빠져나오게 되는데, 더한 결과(data)가 짝수(2로 나누었을 때 나머지가 0인 수)인 경우 result 변수에 더해줍니다. prev 변수 값을 curr 값으로, curr 변수 값을 data 값으로 하.. 2019. 4. 2.
Project Euler(프로젝트 오일러) Problem 1 - Python 문제 10보다 작은 자연수 중에서 3 또는 5의 배수는 3, 5, 6, 9 이고, 이것을 모두 더하면 23입니다. 1000보다 작은 자연수 중에서 3 또는 5의 배수를 모두 더하면 얼마일까요? 반복문을 사용하여 1부터 1000 이내의 자연수를 받아옵니다. 해당 숫자를 3 또는 5의 배수인지 (3 또는 5로 나누었을 때 나머지가 0인 경우) 확인하고 맞다면 result 변수에 결과를 더해줍니다. 답: 233168 2019. 4. 2.
반응형