2026-02-09 23:19:57 +09:00

36 lines
628 B
C

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int score[1000001];
bool valid[1000001];
int main() {
int N;
scanf("%d",&N);
int* card = (int*)malloc(sizeof(int)*N);
for(int i=0; i<N; i++) {
scanf("%d",&card[i]);
valid[card[i]] = true;
}
for(int i=1; i<=1000000; i++) {
if(!valid[i]) continue;
for(int j=2*i; j<=1000000; j+=i) {
if(valid[j]) {
score[i] += 1;
score[j] -= 1;
}
}
}
for(int i=0; i<N; i++) {
printf("%d ",score[card[i]]);
}
free(card);
return 0;
}