Advertisement
cupsamada

1608 sortare divizori zici

Mar 3rd, 2020
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.93 KB | None | 0 0
  1. #include<iostream>
  2. #include<cmath>
  3. #include<fstream>
  4. #include<algorithm>
  5. using namespace std;
  6. ifstream fin("sortare_divizori.in");
  7. ofstream fout("sortare_divizori.out");
  8. pair <int,int> v[1005];
  9. int c[1005];
  10. int main()
  11. {
  12. int nrd=0, n, i, d=0,x,r;
  13. fin>>n;
  14. for(i=1; i<=n; i++)
  15. {
  16. fin>>v[i].first;
  17. x=v[i].first;
  18. r=sqrt(x);
  19. for(d=1; d<=r; d++)
  20. {
  21. if(x%d==0)
  22. {
  23. nrd+=2;
  24. }
  25. }
  26. if(r*r==x)
  27. {
  28. nrd--;
  29. }
  30.  
  31. v[i].second=nrd;
  32. nrd=0;
  33. }
  34. sort(v+1,v+n+1);
  35. for(i=1; i<=n; i++)
  36. {
  37. if(v[i].second==v[i+1].second)
  38. {
  39. if(v[i].first>v[i+1].first)
  40. {
  41. swap(v[i].first, v[i+1].first);
  42. }
  43. }
  44. }
  45. for(i=n; i>=1; i--)
  46. {
  47. fout<<v[i].first<<" ";
  48. }
  49. return 0;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement