我不会用埃式法,用了开根法,我觉得开根法也不会超时呀,大佬帮我看看是不是其它的问题
#include<iostream>
#include <stdio.h>
#include<algorithm>
#include<math.h>
using namespace std;
int a[10001];
int zhishu[10001];
int zhishu1[10001];
int isp(int zhishu) {
if (zhishu < 2) {
return 0;
}
for (int i = 2; i <= sqrt(zhishu); i++) {
if (zhishu % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int n = 0;
int sum = 0, ans = 0;
int l;
cin >> l;
for (int i = 1; i <= l; i++) {
zhishu[i] = i;
}
for (int i = 1; i <= l; i++) {
if (isp(zhishu[i]) == 1) {
zhishu1[i] = zhishu[i];
}
}
sort(zhishu1 + 1, zhishu1 + l + 1);
n = unique(zhishu1 + 1, zhishu1 + l + 1) - zhishu1;
for (int i = 1; i <= n; i++) {
sum += zhishu1[i];
if (sum <= l) {
if (zhishu1[i] != 0) {
ans++;
cout << zhishu1[i] << endl;
}
}
else {
break;
}
}
cout << ans << endl;
return 0;
}