新手请教!80分,问题出在哪里
查看原帖
新手请教!80分,问题出在哪里
1214142
66QwQ99楼主2023/12/2 20:29
#include <stdio.h>

int isprime(int i) {
    int ret = 1;
    int x;
    for (x = 2; x * x <= i; x++) {
        if (i % x == 0) {
            ret = 0;
            break;
        }
    }
    return ret;
}

int main() {
    int L, number, a;
    scanf("%d", &L);
    int prime[L];
    int sum = 0, cnt = 0, cnt1 = 0;
    for (number = 2; number <= L; number++) {
        if (isprime(number)) {
            prime[cnt++] = number;
        }
    }
   	for (int m = 0; m <= cnt ; m++) {
		sum += prime[m];
		if (sum <= L) {
			cnt1++;
		} else {
			break;
		}
	}
    for (int n = 0; n < cnt1; n++) {
        printf("%d \n", prime[n]);
    }
    printf("%d", cnt1);
    return 0;
}

问题出在哪里,是第二个循环吗,第二版我用``` for (int m = 0; m < cnt && sum + prime[m] <= L; m++) { sum += prime[m]; cnt1++; }

通过了
2023/12/2 20:29
加载中...