Source code for submission s448

fl.cpp

  1. #include <cstdio>
  2. #include <vector>
  3. #include <utility>
  4.  
  5. int gcd(int a, int b)
  6. {
  7. if (a == b)
  8. return a;
  9. else if (a > b)
  10. return gcd(a -b, b);
  11. else
  12. return gcd(a, b - a);
  13. }
  14.  
  15. int findlcm(int a, int b)
  16. {
  17. return a * b / gcd(a, b);
  18. }
  19.  
  20. int main()
  21. {
  22. int k, bl;
  23. while (scanf("%d/%d", &bl, &k) == 2)
  24. {
  25. std::vector< std::pair<int, int> > egypt;
  26. for (int i = k + 1; i <= 2 * k; i++)
  27. {
  28. int lcm = findlcm(i, k);
  29. int nom = (lcm / k) - (lcm / i);
  30. if (lcm % nom == 0)
  31. egypt.push_back(std::make_pair(lcm / nom, 1));
  32. }
  33.  
  34. printf("%u\n", egypt.size());
  35. }
  36. }
  37.