python中任意输入10个正整数,找出其中的素数,并将这些素数按由小到大排序怎么做?

如题所述

复制时请注意缩进问题,else是和for对齐的,不是和if对齐。


Li = []

# 连续输入十次并判断其中素数

for i in range(0, 10):

   num = int(input("请输入一个正整数:"))

   for j in range(2, num):

      if num % j == 0:

         print("%d不为素数" % num)

         break

   else:

      Li.append(num)

      print("%d是素数" % num)


# 排序

Li.sort(reverse=True)


# 输出素数列表

print(Li)

缩进如图所示

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-06-08
#include<stdio.h>
#include<math.h>
#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<N; i++)
scanf("%d",&a[i]);
prime(a,N);
for(i=0; i<count; i++)
for(j=i+1;j<count;j++)
if(pri[i]>pri[j])
{
temp = pri[i];
pri[i] = pri[j];
dupri[j] =temp;
}
if(flag == 1)
{
printf("After sorting:\n");
for(i=0; i<count; i++)
printf("%d\n",pri[i]);
printf("\n");
}
return 0;
}
void prime(int ar[],int n)
{
int i,j,m;
for(i=0; i<n; 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");
}本回答被网友采纳
相似回答