给出 1 个数 n,统计 2 到 n 这 n-1 个数,除 1 以外最小的约数分别是多少。
例如 n=6,2 到 6 这 5 个数:
- 除 1 以外最小约数为 2 的包括:2、4、6;
- 除 1 以外最小约数为 3 的包括:3;
- 除 1 以外最小约数为 4 的没有;
- 除 1 以外最小约数为 5 的包括:5;
- 除 1 以外最小约数为 6 的没有。
输入 1 个数 n(2 <= n < 10000)。
输出 n-1 行,第 i 行(对应数值 i+1)表示"除 1 以外最小约数恰好为 i+1"的数字个数。
一个数除 1 以外的最小约数就是它的最小质因子。可以枚举每个质因子 p,把 p 的倍数中还没有被标记过的数标记为最小质因子 p(埃氏筛的思想),最后统计每个质因子对应的数字个数即可,复杂度 O(n log n)。