#include<bits/stdc++.h>usingnamespace std;boolis_prime(int temp){//判断素数int i;int k =sqrt(temp);if(temp >=2){for(i =2; i <= k; i++){if(temp % i ==0){returnfalse;break;}}if(i >= k +1)returntrue;elsereturnfalse;}elsereturnfalse;}intmain(){int L =0, sum =0,ans=0;//ans素数个数 sum素数总和 L最大长度
cin >> L;for(int i =0;; i++){if(is_prime(i)==true&& sum + i <= L){
sum += i;
cout << i << endl;
ans++;}if(sum + i > L)break;}
cout << ans << endl;system("pause");return0;}
第二种:
#include<bits/stdc++.h>usingnamespace std;//P5723boolis_prime(int num){if(num ==0|| num ==1)returnfalse;if(num ==2)//2是returntrue;for(int i =2; i < num; i++){if(num % i ==0)returnfalse;}returntrue;}intmain(){int L =0, sum =0,ans=0;//ans素数个数 sum素数总和 L最大长度
cin >> L;for(int i =2;; i++){if(is_prime(i)==true&& sum + i <= L){
sum += i;
cout << i << endl;
ans++;}if(sum + i > L)break;}
cout << ans << endl;system("pause");return0;}
第三种:
#include<bits/stdc++.h>usingnamespace std;intis_prime(int num){int k = num, i =0, count =0;if(k ==0)return0;for(i =2; i <= k /2; i++){if(k % i ==0){
count++;break;}}if(k !=1&& count ==0)return1;elsereturn0;}intmain(){int L =0, sum =0,ans=0;//ans素数个数 sum素数总和 L最大长度
cin >> L;for(int i =0;; i++){if(is_prime(i)==1&& sum + i <= L){
sum += i;
cout << i << endl;
ans++;}if(sum + i > L)break;}
cout << ans << endl;system("pause");return0;}
第一种:#include<bits/stdc++.h>using namespace std;bool is_prime(int temp) {//判断素数 int i; int k = sqrt(temp); if (temp >= 2) { for (i = 2; i <= k; i++) { if (temp % i == 0) { return false; .