fork download
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int N, M = 2;
  6. scanf("%d", &N);
  7. int a[N];
  8. for(int i=0;i<N;i++) {
  9. scanf("%d", &a[i]);
  10. if(a[i]>M) M = a[i];
  11. }
  12.  
  13. int primeNum[1000],i,j,len=0;
  14. for(i=2;i<M;i++)
  15. {
  16. for(int j=0;j<len;j++)
  17. {
  18. if(i%primeNum[j]==0) break;
  19. }
  20. if(j==len) a[len++] = i;
  21. }
  22.  
  23. for(int i=0;i<N;i++)
  24. {
  25. for(int j=0;j<N-i-1;j++)
  26. {
  27. int FirstIsPrime = 0;
  28. int SecondIsPrime = 0;
  29.  
  30. for(int k=0;k<len;k++)
  31. {
  32. if(a[j]==primeNum[k]) FirstIsPrime = 1;
  33. }
  34.  
  35. for(int k=0;k<len;k++)
  36. {
  37. if(a[j+1]==primeNum[k]) SecondIsPrime = 1;
  38. }
  39.  
  40. if(FirstIsPrime==0 && SecondIsPrime==1)
  41. {
  42. int temp = a[j];
  43. a[j] = a[j+1];
  44. a[j+1] = temp;
  45. }
  46. else if(FirstIsPrime==1 && SecondIsPrime==1 && a[j]<a[j+1])
  47. {
  48. int temp = a[j];
  49. a[j] = a[j+1];
  50. a[j+1] = temp;
  51. }
  52. else if(FirstIsPrime==0 && SecondIsPrime==0 && a[j]>a[j+1])
  53. {
  54. int temp = a[j];
  55. a[j] = a[j+1];
  56. a[j+1] = temp;
  57. }
  58. }
  59. }
  60. }
Success #stdin #stdout 0s 5284KB
stdin
5
0 1 2 3 4
stdout
Standard output is empty