求m位整数,(如3位整数指的是100——999之间的数)中的n个最大的素数并输出,m,n均为正整数
#include<stdio.h>
#include<math.h>
int main()
{
int m,n,i=0,j=0,sum=0,t,num,a,s[100]={0};
scanf("%d%d",&m,&n);
for(num=pow(10,m-1);num<=pow(10,m)-1;num++)
for(a=2;a<=sqrt(num);a++)
{
if(num%a==0) break;
if(a>sqrt(num)) s[i]=num;i++;
}//先判断是否为素数,将素数存入数组
i=0;
while(s[i]!=0)
{
sum++;//sum计算存到数组中的元素个数
i++;
}
for(i=0;i<sum-1;i++)
for(j=i+1;j<sum;j++)
if(s[i]<s[j])
{
t=s[i];
s[i]=s[j];
s[j]=t;
}//将数组中元素从大到小排列
for(i=0;i<n;i++)
{
printf("%d\n",s[i]);
}//输出最大的前n个数
return 0;
}