아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

머리 쓰다듬기

시간 제한1초메모리 제한128 MB

요약
N마리의 소가 각각 값을 하나씩 가지며, 자기 값을 나누는 값을 가진 다른 소의 수를 각자 세는 문제다.
난이도

보통10점 중 5점

유형
수학, 정수론, 해시맵, 배열
정답자
아직 제출이 없습니다

문제

베시의 생일을 맞아 파티 게임을 할 시간입니다! 베시는 11번부터 NN번까지 번호가 매겨진 NN마리(1≤N≤1000001 \le N \le 100000)의 소를 원형으로 앉혔습니다. 즉, 소 ii는 소 i−1i-1과 소 i+1i+1 사이에 앉고, 소 NN은 소 11의 옆에 앉습니다.

농부 존은 커다란 통에 각각 11부터 10000001000000 사이의 정수가 적힌 수많은 종이쪽지를 채워 넣습니다. 각 소 ii는 이 통에서 정수 AiA_i(1≤Ai≤10000001 \le A_i \le 1000000)를 하나 뽑습니다. 뽑은 값이 서로 다를 필요는 없습니다.

그다음 각 소 ii는 차례대로 원을 한 바퀴 돌면서, 자신의 수 AiA_i가 다른 소 jj의 수 AjA_j로 정확히 나누어떨어지는 모든 소 jj의 머리를 쓰다듬은 뒤 원래 자리로 돌아옵니다.

각 소가 자기 자신을 제외한 다른 소를 몇 마리나 쓰다듬는지 구해 주세요.

입력

  • 첫째 줄: 정수 NN이 주어집니다.
  • 둘째 줄부터 N+1N+1째 줄까지: i+1i+1째 줄에 정수 AiA_i가 주어집니다.

출력

  • 총 NN개의 줄을 출력합니다. ii째 줄에는 소 ii가 쓰다듬는 다른 소의 마리 수를 정수 하나로 출력합니다.

힌트

예제에서 첫 번째 소(수 22)는 두 번째 소(수 11, 22가 11로 나누어떨어짐)와 세 번째 소(수 22)의 머리를 쓰다듬어 총 22마리입니다. 두 번째 소(수 11)는 11을 나누어떨어지게 하는 수를 가진 다른 소가 없으므로 아무도 쓰다듬지 않습니다.

예제2

  1. 예제 1

    입력
    5
    2
    1
    2
    3
    4
    
    예상 출력
    2
    0
    2
    1
    3
    
  2. 예제 2

    입력
    4
    1
    2
    4
    8
    
    예상 출력
    0
    1
    2
    3