Advertisement
Alexandre_lsv

Untitled

Mar 20th, 2016
339
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.12 KB | None | 0 0
  1. // 1.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4. #include <map>
  5. #include <iostream>
  6. #include <fstream>
  7. #include <iomanip>
  8. #include <algorithm>
  9. #include <cmath>
  10. #include <set>
  11. #include <cstdlib>
  12. #include <cstdio>
  13. #include <stack>
  14. #include <string>
  15. #include <cctype>
  16. typedef long long ll;
  17. typedef long double ld;
  18. using namespace std;
  19. int main()
  20. {
  21.     ifstream fin("sqr-equations.in");
  22.     ofstream fout("sqr-equations.out");
  23.     fin.sync_with_stdio(false);
  24.     fout.sync_with_stdio(false);
  25.     ll A;
  26.     fin >> A;
  27.     A += 1;
  28.     set<pair<ll, ll>> sett;
  29.     if (A == 0){
  30.         fout << "infinity";
  31.         fin.close();
  32.         fout.close();
  33.         return 0;
  34.     }
  35.     if (A > 0){
  36.         for (ll i = 1; i <= (ll)sqrt(abs(A)); i++){
  37.             if (A%i == 0){
  38.                 sett.insert({ i + 1, A / i + 1 });
  39.                 sett.insert({ -A / i + 1, -i + 1 });
  40.             }
  41.         }
  42.         fout << sett.size();
  43.     }
  44.     else{
  45.         for (ll i = -1; i >= (ll)-sqrt(abs(A)); i--){
  46.             if (A%i == 0){
  47.                 sett.insert({ i + 1, A / i + 1 });
  48.                 sett.insert({ -A/i + 1, -i + 1 });
  49.                 //cout << i << ' ' << A / i << endl;
  50.             }
  51.         }
  52.         fout << sett.size();
  53.     }
  54.  
  55.     fin.close();
  56.     fout.close();
  57.     return 0;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement