这个代码是20分
#include<bits/stdc++.h>
using namespace std;
bool prime(int &val){
if(val==1)return 0;
if(val==2||val==3)return 1;
for(int i=2;i*i<=val;i++){
if(val%i==0)return 0;
else return 1;
}
}
int main(){
int n,a[105];
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=0;i<n;i++){
if(prime(a[i])==1){
cout<<a[i]<<" ";
}
}
}
为什么把prime函数里的return 1改到循环外面就100了
#include<bits/stdc++.h>
using namespace std;
bool prime(int &val){
if(val==1)return 0;
if(val==2||val==3)return 1;
for(int i=2;i*i<=val;i++){
if(val%i==0)return 0;
}
return 1;
}
int main(){
int n,a[105];
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=0;i<n;i++){
if(prime(a[i])==1){
cout<<a[i]<<" ";
}
}
}