[Project Euler] Problem 5

원문: Problem 5

2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder.

What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20?


2520 은 1부터 10까지 각각의 모든 수로 나누어 떨어지는 가장 작은 수이다.
1부터 20까지 각각의 모든 수로 나누어 떨어지는 수 중 가장 작은 양수는 무엇인가?
(*evenly divisible : 나머지 없이 나누어질 수 있는)

No Code
이것은 수학적으로 풀자. 코드가 더 짜증난다.

어떤 수로 나누어 떨어지려면 그 수의 소인수를 모두 가지고 있으면 된다. 즉, 1부터 20까지 각각의 모든 수로 나누어 떨어지려면 각각의 수들의 소인수들 모두를 가지고 있으면 된다. 예를 들어 8로 나누어 떨어지려면 2로 3번, 9이면 3으로 2번 ... 이다. 즉, 그 수는 2를 최소한 4개는 가져야 2의 제곱수들로 나누어지고, 3은 2개, 5는 1개 ... 이다.
따라서 16*9*5*7*11*13*17*19 를 계산하면 된다.

계산은 파이썬에게 :)
접기

ps. 나중에 J 를 다 배우고 나면 J 코드도 적어 놓겠다....(J 쩔어...)

댓글 없음:

댓글 쓰기