Advertisement
AlejandroGY

4243

May 8th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.69 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. double general(long long a, long long b, long long c) {
  5.     return (-b + std::sqrt(b * b - 4 * a * c)) / (2 * a);
  6. }
  7.  
  8. bool k_sumandos(int k, long long n) {
  9.     auto num = 2 * n - k * k + k;
  10.     auto den = 2 * k;
  11.     return num > 0 && num % den == 0;
  12. }
  13.  
  14. int formas(long long n) {
  15.     int res = 0;
  16.     for (int k = 1, t = general(1, 1, -2 * n); k <= t; ++k) {
  17.         res += k_sumandos(k, n);
  18.     }
  19.     return res;
  20. }
  21.  
  22. int main( ) {
  23.     std::ios_base::sync_with_stdio(0);
  24.     std::cin.tie(0);
  25.     std::cout.tie(0);
  26.  
  27.     int cases;
  28.     std::cin >> cases;
  29.     for (int i = 1; i <= cases; ++i) {
  30.         long long x;
  31.         std::cin >> x;
  32.         std::cout << "case " << i << ": " << formas(x) - 1 << "\n";
  33.     }
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement