[백준] 3844. 백준 공화국

newbieski·2022년 12월 5일
0

백준

목록 보기
173/210

https://www.acmicpc.net/problem/3844

문제요약

  • D를 찾아야함
  • 완전제곱수
  • N 이하의 서로다른 자연수의 곱
  • N 은 1천만 이하

접근법

  • 완전제곱수 + 서로다른 자연수의 곱을 어떻게 엮을까
  • N이하의 자연수는 소수의 곱으로 표현 가능
  • N이하의 자연수에서 소수 p가 몇 번 등장하는지 세어봄
    • 잘 계산해내었다고 치고,
    • 짝수번 등장 => 완전제곱수에 쓰일 수 있겠음
    • 홀수번 등장 => 애매한데
    • 홀수번을 짝수번으로 바꿀수는 있겠음 => 한번만 나오는 경우를 빼면 됨
  • 몇 번 등장하는지는 어떻게 셈?
    • N / p => 애매함
    • 애매한 이유는 7 이하에서 2가 몇번 나올까?
      • 7 / 2 = 3 번? => 아님
      • 2 x 1, 2 x 2, 2 x 3 => 4 번
    • 7 : 2 x 1, 2 x 2, 2 x 3 => 2 * (1 ~ 3)
    • 3 : 2 x 1
  • 확장하면
    • n : p x 1, p x 2, .... p x n1
    • n1 : p x 1, p x 2, .... p x n2
    • n2 : p x 1, p x 2, ... p x n3
    • count(n, p) = n / p + count(n / 2, p)
  • 이후 거듭제곱은 당연히 분할정복으로
profile
newbieski

0개의 댓글