4 条题解
-
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; }
信息
- ID
- 809
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 1022
- 已通过
- 266
- 上传者