c语言随机生成100个3位正整数(1)求出其中素数的个数.(2)把求出的所有素数按照从大到小的顺序排序并输出.
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/27 14:18:07
c语言随机生成100个3位正整数(1)求出其中素数的个数.(2)把求出的所有素数按照从大到小的顺序排序并输出.
c语言随机生成100个3位正整数
(1)求出其中素数的个数.(2)把求出的所有素数按照从大到小的顺序排序并输出.
c语言随机生成100个3位正整数(1)求出其中素数的个数.(2)把求出的所有素数按照从大到小的顺序排序并输出.
#include "stdio.h"
#include "time.h"
#include "stdlib.h"
int isprime(int n)//判断n是否是素数,是返回1,不是返回0
{
int i;
for(i=2;i<=n/2;i++)
if(n%i==0)
return 0;
return 1;
}
int main()
{
int a[100]={0};
int b[100]={0};
int i,j,count=0,tmp;
srand(time(NULL));
for(i=0;i<100;i++)//3位整数 100~999
{
a[i]=rand()%900+100; //rand()%900 899 加上100则是 100~999
if(isprime(a[i])==1) //如果是素数,则存到b数组中,同时用count变量计数
{
b[count++]=a[i];
}
}
//素数数组排序从大到小:
for(i=0;i<count-1;i++)
for(j=i+1;j<count;j++)
if(b[i]<b[j])
{
tmp=b[i];
b[i]=b[j];
b[j]=tmp;
}
printf("随机产生的100个3位数中素数共有%d个\n",count);
printf("从大到小输出素数:\n");
for(i=0;i<count;i++)
printf("%d\t",b[i]);
printf("\n");
}