4 条题解
-
3
C++
#include <bits/stdc++.h> using namespace std; bool isp(int a){//判断素数 if (a == 1) return false;//1不是素数#2的坑点 for(int i = 2; i * i <= a; i++) { if(a % i == 0) return false; } return true; } int main(){ int n; int x; int sum1 = 0, sum2 = 0; int p[100], np[100];//素数存入p数字,非素数存入np数组 cin >> n; for(int i = 0; i < n; i++) { cin >> x; if(isp(x)) {//分数 p[sum1] = x; sum1 += 1; } else { np[sum2] = x; sum2 += 1; } } sort(p, p + sum1);//素数排序 for(int i = 0; i < sum1; i++) { cout << p[i] << " "; } for(int i = 0; i < sum2; i++) { cout << np[i] << " "; } return 0; }
-
3
- 1不是素数
- 合数保持原来顺序
#include <stdio.h> #include <math.h> #define N 1010 typedef struct { int num, data; } node; int n; node a[N]; int isPrime(int x) { if(x == 1) return 0; for(int i = 2; i < sqrt(x) + 0.05; i++) { if(x % i == 0) return 0; } return 1; } void swap(node *x, node *y) { node temp = *x; *x = *y; *y = temp; } void SelectSort(node *x, int l, int r) { for(int i = l; i < r; i++) { int m = i; for(int j = i + 1; j <= r; j++) { if(isPrime(x[m].data)) { if(isPrime(x[j].data) && x[j].data < x[m].data) m = j; } else { if(isPrime(x[j].data)) m = j; else if(x[j].num < x[m].num) m = j; } } swap(&x[i], &x[m]); } } int main() { scanf("%d", &n); for(int i = 1; i <= n; i++) { scanf("%d", &a[i].data); a[i].num = i; } SelectSort(a, 1, n); for(int i = 1; i <= n; i++) { printf("%d ", a[i].data); } return 0; }
-
2
n=int(input()) a=list(map(int,input().split())) def judge(x): if x==1 or x==0: return False else: flag=True for i in range(2,x): if x%i==0: flag=False return flag for i in range(1,n): for j in range(n-1,i-1,-1): if judge(a[j])==judge(a[j-1])==True and a[j]<a[j-1]: a[j],a[j-1]=a[j-1],a[j] elif judge(a[j]) and not judge(a[j-1]): a[j],a[j-1]=a[j-1],a[j] for i in range(n): print(a[i],end=" ")
-
2
def judge(n): flag=True if n==1: flag=False for i in range(2,n): if n%i==0: flag=False break return flag n=int(input()) a=list(map(int,input().split())) #使用冒泡排序算法对素数进行升序排序 for i in range(n): for j in range(n-1,i,-1): if judge(a[j]): if judge(a[j-1]) and a[j]<a[j-1] or not judge(a[j-1]): a[j],a[j-1]=a[j-1],a[j] for i in range(n): print(a[i],end=" ")
- 1
信息
- ID
- 809
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 1022
- 已通过
- 266
- 上传者