文章
119
粉丝
68
获赞
92
访问
20.1k
#include <bits/stdc++.h>
using namespace std;
int main() {
// 筛法求素数
vector<int> a(10001), b;
for (int i = 2; i < 10001; i++) {
if (a[i] == 0) {
int l = 2;
int k = i * l;
while (k < 10001) {
a[k] = 1;
l++;
k = i * l;
}
}
}
for (int i = 2; i < 10001; i++) {
if (a[i] == 0) b.push_back(i);
}
// 生成质因数数量大于等于 8 的整数
vector<int> c;
for (int i = 2; i <= 900000; i++) {
int temp = i; // 使用临时变量
int count = 0;
for (int j = 0; j < b.size(); j++) {
if (b[j] * b[j] > temp) break; // 提前终止条件
while (temp % b[j] == 0) {
temp /= b[j];
count++;
}
if (count >= 8) break; // 如果已经满足条件,提前退出
}
if (temp > 1) count++; // 如果 temp 仍大于 1,说明还有一个质因数
if (count ...
登录后发布评论
暂无评论,来抢沙发