小红拿到了一个正整数x,她想知道x有多少个不同的素因子,你能帮帮她吗?

输入格式

一个正整数x。 1≤x≤10^13

输出格式

输出x不同的素因子的数量。

数据范围 1≤x≤10^13

输入样例:

1
12

输出样例:

0
2

题目分析

分解质因数, 注意数据范围。

代码实现

#include <iostream>
using namespace std;

long long n, cnt;
void divide(long long val) {
    for(int i = 2; i <= val / i; ++i) {
        if(val
            int p = 0;
            while(val
                ++p;
                val /= i;
            }
            ++cnt;
        }
    }
    if(val > 1) ++cnt;
}
int main () {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin >> n;
    divide(n);
    cout << cnt;
    return 0;
}
分类: Math

0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用*标注

友情链接:Ctips' blog, Colza’s blog

站点状态:Status