#include <bits/stdc++.h>
using namespace std;
bool isPrime(int num) {
if (num <= 1)
return false;
int sqr = (int) sqrt(1.0 * num);
for (int i = 2; i <= sqr; i++)
if (num % i == 0)
return false;
return true;
}
int main() {
int L, index = 2, total = 0;
scanf("%d", &L);
if (L < 2) {
printf("0\n");
return 0;
}
deque<int> d;
while (total < L) {
if (isPrime(index) && total + index <= L)
total += index, d.push_back(index);
else if (total + index > L)
break;
index++;
}
for (deque<int>::iterator it = d.begin(); it != d.end(); it++)
printf("%d\n", *it);
printf("%d\n", d.size());
return 0;
}
P5723(质数口袋)
最新推荐文章于 2024-03-24 16:42:44 发布