文章
119
粉丝
68
获赞
92
访问
20.2k
#include <bits/stdc++.h>
using namespace std;
bool isprime(int x) {
if (x < 2) return false; // 1 不是质数
for (int i = 2; i * i <= x; i++) {
if (x % i == 0) {
return false;
}
}
return true;
}
int main() {
int x, y;
while (cin >> x >> y) {
vector<int> composites; // 存储合数的位置
for (int i = x; i <= y; i++) {
if (!isprime(i)) {
composites.push_back(i);
}
}
// 寻找最长连续合数序列
int maxLen = 1, currentLen = 1;
int start = 0, end = 0;
for (int i = 1; i < composites.size(); i++) {
if (composites[i] == composites[i - 1] + 1) {
currentLen++;
if (currentLen > maxLen) {
maxLen = currentLen;
end = i;
}
} else {
currentLen = 1;
}
}
...
登录后发布评论
暂无评论,来抢沙发