提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
题目描述
输入 n 个不大于 10^5 的正整数。要求全部储存在数组中,去除掉不是质数的数字,依次输出剩余的质数。
输入格式
第一行输入一个正整数 n,表示整数个数。
第二行输入 n 个正整数,以空格隔开。
输出格式
输出一行,依次输出剩余的质数,以空格隔开。
方法一
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n,i,j;
cin>>n;
int a[100];
for(i=0;i<n;++i)
cin>>a[i];
for(i=0;i<n;++i)
{
int k=1;
for(j=2;j<=sqrt(a[i]);++j)
{
if(a[i]%j==0){
k=0;break;}
}
if(k==1&&a[i]!=1)
cout<<a[i]<<' ';
}
return 0;
}
方法二
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int prime(int n);
int n,k,a[100];
cin>>n;
for(int i=0;i<n;++i)
{
cin>>a[i];
k=prime(a[i]);
if(k) cout<<k<<' ';
}
}
int prime(int n)
{ int m=1;
for(int j=2;j<=sqrt(n);++j)
{
if(n%j==0) {
m=0;break;}
}
if(m==1&&n!=1) return n;
else return 0;
}