class PrimeHelper {
public:
// 打印小于等于n的质数 https://www.geeksforgeeks.org/sieve-of-eratosthenes/
void prime_n(int n) {
vector<int> prime(n + 1, true);
prime[0] = prime[1] = false;
for (int i = 2; i <= n; ++i) {
if (!prime[i]) {
continue;
}
for (int j = i * i; j <= n; j += i) {
prime[j] = false;
}
}
for (int i = 0; i <= n; ++i) {
if (prime[i]) cout << i << endl;
}
return;
}
// 质因数分解
vector<int> factorization(int n) {
vector<int> res;
for (int i = 2; i <= n; ++i) {
if (n % i == 0) {
res.push_back(i);
n /= i;
--i;
}
}
for (int num : res) {
cout << num << endl;
}
return res;
}
// 质因数分解
set<int> factor(int num){
set<int> res;
for(int i = 2; i * i <= num; ++i){
while(num % i == 0){
res.insert(i);
num /= i;
}
}
if(num > 1) res.insert(num);
return res;
}
// 判断是否是质数
bool is_prime(int n) {
for (int i = 2; i * i <= n; ++i) {
if (n % i == 0) {
return false;
}
}
return n > 1;
}
};
质数相关功能函数
于 2023-04-09 19:56:26 首次发布