有三个点RE,求救!!!!
查看原帖
有三个点RE,求救!!!!
957640
Michelle01楼主2023/7/21 10:50

我不会用埃式法,用了开根法,我觉得开根法也不会超时呀,大佬帮我看看是不是其它的问题


#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;
}
2023/7/21 10:50
加载中...