#include<stdio.h>
int main()
{
int n,l,sum=0;
int a[50];
a[0] = 2;
scanf("%d",&n);
for (int i = 2;; i++) {
for (int j = 2; j < i; j++) {
int h = i % j;
if (h != 0) {
for (l = 1; l < 50; l++) {
h = a[l];
}
for (int k = 0; k <= l; k++) {
sum += a[k];
}
if (sum > n)break;
}
for(int i=0;i<=l;i++)
printf("%d\n", a[i]);
printf("%d",l);
return 0;
}
我的想法是枚举出2 以后的素数,并存在数组里,之后求和与n比,大于n就跳出for。会有超时的问题。但它至少应该能走。请指正。