找出数组a中所有的素数并从大到小排列

目录

  • 1.问题描述
  • 2.源代码

1.问题描述

随机生成50个1~200之间的整数,并存入数组a中,然后按每行5个元素输出这些整数;同时找出数组a中的所有素数,存入数组b,并按每行5个元素的格式由大到小输出这些素数。

2.源代码

#include
#include
#include
#include
int main(){
	int a[50],b[25]={0};
	int num=0,flag;
	int i,j,t;
	srand((int)time(0));
	for(i=0;i<50;i++){
		a[i]=(int)(1+199*rand()/RAND_MAX);
		printf("%5d",a[i]);
		if((i+1)%5==0) printf("\n");
	}
	printf("\n\n");
	for(i=0;i<50;i++){
		flag=1;
		for(j=2;j<sqrt(a[i]);j++)
			if(a[i]%j==0){
				flag=0;
				break;
			}
			if((flag==1)&&(a[i]!=1)){
				b[num]=a[i];
				num++;
			}
	}
	for(i=0;i<num;i++)
		for(j=0;j<num-i;j++)
		if(b[j]<b[j+1]){
			t=b[j];
			b[j]=b[j+1];
			b[j+1]=t;
		}
	for(i=0;i<num;i++){
		printf("%5d",b[i]);
		if((i+1)%5==0) printf("\n");
	}
	return 0;
}	

你可能感兴趣的:(C/C++,算法题整理,C/C++系列)