Advertisement
Guest User

Untitled

a guest
Jan 29th, 2020
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.79 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. ifstream f("divimax.in");
  4. ofstream g("divimax.out");
  5. bool v[3600];
  6. short int a[3100],b[3100];
  7. int main()
  8. {
  9. int n,m,i,j,c,max=-1;
  10. v[0]=1;
  11. v[1]=1;
  12. for(i=2; i*i<=3501; i++)
  13. {
  14. if(v[i]==0)
  15. for(j=2; j<=3501/i; j++)
  16. v[i*j]=1;
  17. }
  18. f>>c>>n;
  19. if(c==1)
  20. {
  21. for(j=1; j<=n; j++)
  22. {
  23. int x,div=-1;
  24. f>>x;
  25. if(v[x]==0)
  26. div=x;
  27. else
  28. {
  29. for(i=2; i<=x/2; i++)
  30. {
  31. if(x%i==0)
  32. if(v[i]==0)
  33. div=i;
  34. }
  35. }
  36. if(div==-1)
  37. div=1;
  38. a[j]=div;
  39. while(div!=0)
  40. {
  41. b[j]*10+div%10;
  42. div=div/10;
  43. }
  44. }
  45. for(i=1; i<n; i++)
  46. {
  47. int max=b[i];
  48. int p=i;
  49. for(j=i+1; j<=n; j++)
  50. {
  51. int aux1=b[i];
  52. int aux2=b[j];
  53. while(aux1>0 and aux2>0 and aux1%10==aux2%10)
  54. {
  55. aux1=aux1/10;
  56. aux2=aux2/10;
  57. }
  58. if(aux2==0 and aux1>0)
  59. {
  60. max=b[j];
  61. p=j;
  62. }
  63. else if(aux2%10>aux1%10)
  64. {
  65. max=b[j];
  66. p=j;
  67. }
  68. }
  69. int aux=a[i];
  70. a[i]=a[p];
  71. a[p]=aux;
  72. aux=b[i];
  73. b[i]=b[p];
  74. b[p]=aux;
  75. }
  76. for(i=1;i<=n;i++)
  77. g<<a[i];
  78. }
  79. return 0;
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement