出自洛谷:
题目描述:
输入n(n≤100) 个不大于 100000 的整数。要求全部储存在数组中,去除掉不是质数的数字,依次输出剩余的质数。
输入格式:
第一行:一个数N表示有N个数
第二行:N个数
输出格式:
第一行:这些数中的质数
输入输出样例:
输入#1:
5
3 4 5 6 7
输出#1:
3 5 7
只用写一个函数:bool isprime(int n);
源代码:
#include <bits/stdc++.h>
using namespace std;
bool isprime(int n){
if(n<=1) return false;//if n<2,n is not prime
if(n==2 or n==3) return true;
if(n%6!=1 and n%6!=5) return false;//if n%6!=1 or n%6!=5,n is not prime
for(int i=5;i*i<=n;i+=6) if(n%i==0 or n%(i+2)==0) return false;
return true;
}
int main(){
int n,temp;
cin>>n;//input
for(int i=0;i<n;i++){
cin>>temp;
if(isprime(temp))cout<<temp<<" ";
}
return 0;
}
大佬们看完文章后求多赞多关注,谢谢!
再求大佬们多做一下我出的题: