예를 들어 10!에 곱해진 2의 개수를 구할거에요.
10!에서 2가 곱해져 있는 수들은 2,4,6,8,10이 있습니다.
2가 1번 곱해져 있는 수는 2,6,10
2가 2번 곱해져 있는 수는 4
2가 3번 곱해져 있는 수는 8이므로,
2의 개수로 표현하면, 2,6,10은 1 , 4는 2 , 8은 3
10//2를 하면 2,4,6,8,10이 더해지고
10//4를 하면 4,8이 더해지고
10//8을 하면 8이 더해집니다.
약간 이런 느낌입니다.
2004번 - 조합 0의 개수
예를 들어 10!에 곱해진 2의 개수를 구할거에요.
10!에서 2가 곱해져 있는 수들은 2,4,6,8,10이 있습니다.
2가 1번 곱해져 있는 수는 2,6,10
2가 2번 곱해져 있는 수는 4
2가 3번 곱해져 있는 수는 8이므로,
2의 개수로 표현하면, 2,6,10은 1 , 4는 2 , 8은 3
10//2를 하면 2,4,6,8,10이 더해지고
10//4를 하면 4,8이 더해지고
10//8을 하면 8이 더해집니다.
약간 이런 느낌입니다.
여기서 더해진다는 말은 카운팅 된다는 얘기입니다!
즉, 2^n꼴의 배수를 계속해서 카운팅 하는 것입니다.
설명이 이해 되셨으면 좋겠네요..
댓글을 작성하려면 로그인해야 합니다.
brandon94 4년 전 1
솔루션을 찾아보니 원하는 숫자의 갯수를 구해주는 함수를 만들어 주더라구요.
그런데 여기서 제가 궁금한건
예를들어 10!에서 2의 개수를 구할때
코드에 따르면(i //= j) 10을 2로 나눈 몫을 2로 나누고 또 그 몫을 2로 나누어주는걸 반복해서
더이상 나누어질 때까지 나누고 그 모든 몫들을 더해준 것이 10!에 있는 2의 개수인건데
왜 그 몫들을 더해준건이 2의 개수가 될 수 있는건지 이해가 안됩니다... ㅜ
혹시 이를 설명해주실 분이 계실까요?? ㅠ