题目考点:因数、枚举

题目大意:将数字拆成因数相乘的形式,问有多少个不同因子。

分析:暴力枚举即可(以为会被大素数卡掉实际上数据不大)

代码:

#include<iostream>
#include<cstring>
#include<algorithm>

using namespace std;

int t, n;

bool primer(int n)
{
    if(n < 2) return false;
    for(int i = 2; i <= n/i; i++)
        if(n % i == 0) return false;
    return true;
}

int main()
{
    scanf("%d", &t);
    while(t--)
    {
        scanf("%d", &n);
        if(primer(n))
            printf("2\n");
        else
        {
            int cnt = 0;
            for(int i = 1; i <= n; i++)
            {
                if(n % i == 0)
                {
                    cnt ++; n /= i;
                }
            }
            printf("%d\n", cnt);
        }
    }
    return 0;
}