题目描述
输入 n(n\le100)n(n≤100) 个不大于 100000 的整数。要求全部储存在数组中,去除掉不是质数的数字,依次输出剩余的质数。
输入格式
无
输出格式
无
输入输出样例
输入 #1复制
5 3 4 5 6 7
输出 #1复制
3 5 7
方法一:数组运算
#include<stdio.h>
#include<math.h>
int main()
{
int n;
scanf("%d",&n);
int a[n];
int i,j;
for(i=0;i<n;i++){
scanf("%d",&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){//注意排除1的情况
printf("%d ",a[i]);
}
}
return 0;
}
方法二:函数运算
#include<stdio.h>
#include<math.h>
int search(int n)
{
int i,k=1;
for(i=2;i<=sqrt(n);i++){
if(n%i==0){
k=0;
break;
}
}
if(k==1&&n!=1){
return n;
}
else{
return 0;
}
}
int main()
{
int n,m;
scanf("%d",&n);
int i=1;
while(i<=n){
scanf("%d",&m);
int k=search(m);
if(k!=0){
printf("%d ",k);
}
i++;
}
return 0;
}
方法三:函数+数组运算
#include<stdio.h>
#include<math.h>
int search(int n)
{
int i,k=1;
for(i=2;i<=sqrt(n);i++){
if(n%i==0){
k=0;
break;
}
}
if(k==1&&n!=1){
return n;
}
else{
return 0;
}
}
int main()
{
int n;
scanf("%d",&n);
int a[n];
int i,j;
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
int k;
for(i=0;i<n;i++){
k=search(a[i]);
if(k!=0){
printf("%d ",k);
}
}
return 0;
}