若整数
算术基本定理的推论
在算术基本定理中,若正整数
试除法求 的约数集合
cpp
vector<int> factorize(int n) {
vector<int> factor;
for (int i = 1; i * i <= n; i++) {
if (n % i == 0) {
factor.push_back(i);
if (i != n / i) factor.push_back(n / i);
}
}
return factor;
}由试除法可知一个整数
倍数法求 每个数的约数集合
cpp
void factorize(int n) {
vector<int> factor[500010];
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n / i; j++) {
factor[i * j].push_back(i);
}
}
for (int i = 1; i <= n; i++) {
for (int j = 0; j < factor[i].size(); j++) {
cout << factor[i][j] << " ";
}
cout << endl;
}
return;
}最大公约数和最小公倍数
若自然数
若自然数
最大公约数和最小公倍数的关系:
