求助大佬
查看原帖
求助大佬
682260
chenmumin楼主2023/7/25 13:26

这个代码是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]<<" ";
		}
	}
}
2023/7/25 13:26
加载中...