目录
4658. 质因数个数
题目描述
运行代码
#include<iostream>
using namespace std;
typedef long long ll;
ll n;
int count(ll x) {
int c = 0;
for(ll i=2;i<=x/i;i++)
if (x % i == 0) {
while (x % i == 0)x /= i;
c++;
}
if (x > 1)c++;
return c;
}
int main() {
cin >> n;
cout << count(n);
return 0;
}
代码思路
-
定义了一个函数
count
,用于计算给定整数x
的不同质因数的个数。- 初始化一个计数器
c
为 0 。 - 从 2 到
x
的平方根进行遍历。如果x
能被当前的i
整除,就通过一个内层循环不断用x
除以i
,去除该质因数的影响,并将计数器c
加 1 。 - 检查如果经过上述循环后
x
仍然大于 1,说明x
本身是一个未被除尽的质因数,将计数器c
加 1 。 - 最后返回计数器
c
,即质因数的个数。
- 初始化一个计数器
-
在
main
函数中:- 读入一个整数
n
。 - 调用
count
函数计算n
的不同质因数的个数,并将结果输出。
- 读入一个整数
197. 阶乘分解
题目描述
运行代码
#include <iostream>
using namespace std;
const int N = 1000006;
int primes[N