a53

num_sum_div

a53
Mar 28th, 2020
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. ifstream f ("num_sum_div.in");
  5. ofstream g ("num_sum_div.out");
  6.  
  7. const int NN = 70715;
  8. bool ciur[NN + 1];
  9. int prime[32768], np, k1, k2, k3;
  10.  
  11. int main ()
  12. {
  13. for (int i = 2; i * i <= NN; i++)
  14. if (ciur[i] == 0)
  15. for (int j = 2; i * j <= NN; j++)
  16. ciur[i * j] = 1;
  17.  
  18. prime[++np] = 2;
  19. for (int i = 3; i <= NN; i += 2)
  20. if (ciur[i] == 0)
  21. prime[++np] = i;
  22.  
  23. long long n, x, m, S;
  24. f >> n;
  25. while (n--)
  26. {
  27. f >> x;
  28. m = x, S = 1;
  29. int d = 1;
  30. while (m > 1)
  31. {
  32. long long f = 1, t = 1;
  33. while (m % prime[d] == 0)
  34. t += (f *= prime[d]), m /= prime[d];
  35. S *= t;
  36. d++;
  37. if (1LL * prime[d] * prime[d] > m && m > 1)
  38. S *= (m + 1), m = 1;
  39. }
  40. if (S < 2 * x) k1++;
  41. else if (S == 2 * x) k2++;
  42. else if (S > 2 * x) k3++;
  43. }
  44. g << k1 << " " << k2 << " " << k3;
  45. return 0;
  46. }
Add Comment
Please, Sign In to add comment