#include <stdio.h>
#include <math.h>
#define N 5
int prime(int a[],int b[],int n);
int main()
{
int i,j;
int count;
int a[N];
int b[N];
for(i=0;i<N;i++)
scanf("%d",&a[i]);
count=prime(a,b,N);
for(j=0;j<count;j++)
printf("%d ",b[j]);
printf("%d",count);
}
int prime(int a[],int b[],int n)
{
int i,j,k=0;
for(i=0;i<N;i++)
{
for(j=2;j<=sqrt((double)a[i]);j++)
{
if(a[i]%j==0)
return 0;
}
b[k]=a[i];
k++;
}
return k;
}
修改如下,供参考:
#include <stdio.h>
#include <math.h>
#define N 5
int prime(int a[],int b[],int n);
int main()
{
int i,j;
int count;
int a[N];
int b[N];
for(i=0;i<N;i++)
scanf("%d",&a[i]);
count=prime(a,b,N);
for(j=0;j<count;j++)
printf("%d ",b[j]);
printf("\n%d\n",count);
return 0;
}
int prime(int a[],int b[],int n)
{
int i,j,k=0,flg=0;
for(i=0;i<n;i++)//for(i=0;i<N;i++)
{
flg=0;
for(j=2;j<=sqrt((double)a[i]);j++)
{
if(a[i]%j==0)
{
flg=1; break; //return 0;
}
}
if(flg==0 && a[i]!=1){
b[k]=a[i];
k++;
}
}
return k;
}