题记(39)--约数个数(大数据情况)

目录

一、题目内容

二、输入描述

三、输出描述

四、输入输出示例

五、完整C语言代码


一、题目内容

输入n个整数,依次输出每个数的约数的个数

二、输入描述

输入的第一行为N,即数组的个数(N<=1000) 接下来的1行包括N个整数,其中每个数的范围为(1<=Num<=1000000000)

三、输出描述

可能有多组输入数据,对于每组输入数据, 输出N行,其中每一行对应上面的一个数的约数的个数。

四、输入输出示例

输入:

5
1 3 4 6 12

输出:

1
2
3
4
6

五、完整C语言代码

AC代码~

#include
#include
int main() {
    int N;
    while (scanf("%d", &N) != EOF) {
        int* a = (int*)malloc(N * sizeof(int));
        for (int i = 0; i < N; i++)
            scanf("%d", &a[i]);
        for (int i = 0; i < N; i++) {
            int sum = 0;
            int j;
            for (j = 1; j * j < a[i]; j++) { // 避免超时
                if (a[i] % j == 0)
                    sum = sum + 2;
            }
            if (j * j == a[i])
                sum++;
            printf("%d\n", sum);
        }
    }
    return 0;
}

你可能感兴趣的:(c++)