约数伙伴(divisor)
题目描述
DAMON THRONE 的训练系统中有 n 张数字卡片,第 i 张卡片上的数字为 ai。
对于第 i 张卡片,如果第 j 张卡片上的数字能够整除 ai,即:
aj∣ai
那么称第 j 张卡片是第 i 张卡片的一个 约数伙伴 。
请你计算每张卡片有多少个约数伙伴。
注意:
- 每张卡片都要单独计算;
- 如果多张卡片上的数字相同,它们仍然是不同的卡片;
- 一张卡片可以成为自己的约数伙伴。
输入格式
第一行包含一个整数 n,表示数字卡片的数量。
第二行包含 n 个正整数 a1,a2,…,an,表示每张卡片上的数字。
输出格式
输出一行 n 个整数。
第 i 个整数表示第 i 张卡片的约数伙伴数量。
输入输出样例 #1
输入 #1
6
1 2 3 4 6 12
输出 #1
1 2 2 3 4 6
样例解释 #1
对于数字 4,数组中能够整除 4 的数字为 1,2,4,因此数字 4 的约数伙伴数量为 3。
对于数字 12,数组中所有数字 1,2,3,4,6,12,都能够整除 12,因此它的约数伙伴数量为 6。
输入输出样例 #2
输入 #2
5
2 2 4 8 3
输出 #2
2 2 3 4 1
样例解释 #2
数组中有两张数字为 2 的卡片。
对于任意一张数字为 2 的卡片,这两张卡片都能够整除它,因此约数伙伴数量为 2。
对于数字 8,能够整除它的卡片为 2,2,4,8,共 4 张。
数据范围与约定
对于所有测试数据,保证:
1≤n≤2×105,1≤ai≤106
| 测试点 |
分值 |
n |
ai |
特殊性质 |
| 1∼2 |
10 |
≤100 |
无 |
| 3∼4 |
20 |
≤2000 |
A |
| 5∼6 |
≤105 |
≤106 |
B |
| 7∼8 |
≤2×105 |
C |
| 9∼10 |
30 |
无 |
特殊性质 A:保证所有 ai 互不相同。
特殊性质 B:保证所有 ai 都相同。
特殊性质 C:保证所有 ai 都是 2 的幂。