任意输入20个正整数,找出其中的素数,并将这些素数按由小到大排序。要求:判断一个数是否为素数用函数实现

要求用c语言实现
2024-11-08 04:54:08
推荐回答(1个)
回答(1):

#include
#include
#define N 5
int pri[N];
int flag=0;//判断有无素数 无则返回1,有则返回0
int count=0;//素数个数
void prime(int ar[],int n);
main()
{
int a[N];
int i,j,temp;
printf("input %d numbers below:",N);
for(i=0; i scanf("%d",&a[i]);
prime(a,N);

for(i=0; i for(j=i+1;j if(pri[i]>pri[j])
{
temp = pri[i];
pri[i] = pri[j];
pri[j] =temp;

}
if(flag == 1)
{
printf("After sorting:\n");
for(i=0; i printf("%d\n",pri[i]);
printf("\n");
}
return 0;
}
void prime(int ar[],int n)
{
int i,j,m;
for(i=0; i {
m=(int)(sqrt(ar[i])+1);
for(j=2; j<=m;j++)
if(ar[i]%j == 0)
break;
if(j>m)
{
flag=1;
pri[count++]=ar[i];
printf("%4d\n",ar[i]);

}

}

printf("No primer\n");
}

我还额外的添加了些功能 考虑的更周到 刚写好的