Advertisement
Guest User

Untitled

a guest
Dec 6th, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. #include <fstream>
  2. using namespace std;
  3.  
  4. ifstream fin("maxdiv.in");
  5. ofstream fout("maxdiv.out");
  6.  
  7. int n, t, v[1002], i, j, dmax, a[1002];
  8. int l, lmax, st, dr, ns;
  9.  
  10. int nrdiv(int x)
  11. {
  12. int e, d, nrd;
  13. nrd = 1;
  14. if(x==1)
  15. nrd = 1;
  16. else
  17. {
  18. d = 2;
  19. while(x > 1)
  20. {
  21. e = 0;
  22. while(x % d == 0)
  23. {
  24. e++;
  25. x = x / d;
  26. }
  27. nrd = nrd * (e+1);
  28. if(d == 2)
  29. d++;
  30. else
  31. d = d + 2;
  32. }
  33. }
  34. return nrd;
  35. }
  36.  
  37. int main()
  38. {
  39.  
  40. fin >> n >> t;
  41. for(i = 1; i <= n; i++)
  42. {
  43. fin >> v[i];
  44. a[i] = nrdiv(v[i]);
  45. }
  46.  
  47. for(i = 1; i <= n; i++)
  48. {
  49. if(a[i] > dmax)
  50. dmax = a[i];
  51. }
  52.  
  53. for(i = 1; i <= n; i++)
  54. {
  55. if(a[i] == dmax)
  56. ns++;
  57. }
  58. a[n+1] = dmax - 1;
  59. for(i = 1; i <= n; i++)
  60. {
  61. if(a[i] == dmax)
  62. {
  63. j = i + 1;
  64. l = 1;
  65. while(j <= n && a[j] != dmax)
  66. {
  67. j++;
  68. l++;
  69. }
  70. if(l > lmax && a[j] == dmax)
  71. {
  72. lmax = l;
  73. st = i;
  74. dr = j;
  75. }
  76. i = j - 1;
  77. }
  78. }
  79. if(t == 1)
  80. fout << ns - 1 << '\n';
  81. else
  82. {
  83. for(i = st; i <= dr; i++)
  84. fout << v[i] << " ";
  85. }
  86.  
  87.  
  88.  
  89. return 0;
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement